我正在开发一个应用程序,我需要将所有文件保存在每个用户的目录中。我写了一半,但我不清楚如何将文件添加到目录。
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;
}
答案 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);
}