添加文件夹中的文件列表

时间:2016-01-07 18:57:57

标签: java

我正在开发一个应用程序,我需要将所有文件保存在每个用户的目录中。我写了一半,但我不清楚如何将文件添加到目录。

public boolean addFiles(String name,List<File> files){
    String path = "D:\\Server Repository\\UsersFiles\\";
    File folder = new File(path + name);

    if(!folder.exists()) 
          folder.mkdirs();

    for(File file:files){
        //my code 
        //if all ended with success return true
    }
    return false;
}

3 个答案:

答案 0 :(得分:1)

Apache Commons-IO API支持此功能。看看FileUtils

答案 1 :(得分:1)

如果您不想要像FileUtils这样的第三方库,只想要一个简单的代码来复制文件,您可以这样做:

public boolean addFiles(String name, List<File> files) {
    String path = "D:\\Server Repository\\UsersFiles\\";
    File folder = new File(path + name);

    if (!folder.exists()) {
        folder.mkdirs();
    }

    try {
        for (File file : files) {
            FileInputStream fisOrigin;
            FileOutputStream fosDestiny;
            //channels  
            FileChannel fcOrigin;
            FileChannel fcDestiny;

            fisOrigin = new FileInputStream(file);
            fosDestiny = new FileOutputStream(new File(folder.getAbsolutePath() + "/" + file.getName()));

            fcOrigin = fisOrigin.getChannel();
            fcDestiny = fosDestiny.getChannel();
            //Copy the file
            fcOrigin.transferTo(0, fcOrigin.size(), fcDestiny);

            fisOrigin.close();
            fosDestiny.close();
        }
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

答案 2 :(得分:0)

您需要的是

copyFile(File srcFile, File destFile, boolean preserveFileDate)

来自FileUtils

在你的情况下;

 for(File file:files){
        String dest = folder + file.name();
        copyFile(file, dest, true);
    }