代码之家  ›  专栏  ›  技术社区  ›  user2451016

Java在上传到AWS云之前创建文件副本

  •  0
  • user2451016  · 技术社区  · 6 年前

    我在一个目录里有一个图像。 我想用不同的名称复制一个图像,而不损害同一目录中的原始图像。
    所以在一个文件夹中会有两个相同的图片,名字不同。

         File source = new File("resources/"+getImage(0));  
            File dest = new File("resources/");
            source.renameTo("resources/"+getImage(0)+);
            try {
                FileUtils.copyDirectory(source, dest);
            } catch (IOException e) {
                e.printStackTrace();
            }
    

    当我将同一个图片多次上传到Amazon服务器时,它开始发出上传的问题。 在eclipse中一般都有资源文件夹。我想在每次上传前复制一张原始图片,上传后删除。 请提出一些建议

    2 回复  |  直到 6 年前
        1
  •  1
  •   Community rcollyer    4 年前

    StandardCopyOption.COPY_ATTRIBUTES

    公共静态final StandardCopyOption复制\属性

    将属性复制到新文件。

    Files.copy(Paths.get(//path//to//file//and//filename),
        Paths.get(//path//to//file//and//newfilename), StandardCopyOption.COPY_ATTRIBUTES);
    
        2
  •  0
  •   user2451016    6 年前

    import org.junit.jupiter.api.Test;
    import java.io.*;
    import java.nio.file.Files;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    
    public class Upload {
    
        private static final String SRC_RESOURCES_FILE_PATH = System.getProperty("user.dir")+"/src/resources/";
    
        File s1 = new File(SRC_RESOURCES_FILE_PATH+"Img1.png");
        File s2 = new File(SRC_RESOURCES_FILE_PATH+"Img"+getDateStamp()+".png");
    
        @Test
        public void uploadFunction() throws IOException {
            copyFileUsingJava7Files(s1,s2);
    
        }
    
        private String getDateStamp(){
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date date = new Date();
            return dateFormat.format(date).toString();
    
        }
    
    
        private static void copyFileUsingJava7Files(File source, File dest)
            throws IOException {
            Files.copy(source.toPath(), dest.toPath());
        }
    
    
    }