[英]How to move all the files from one path to other except with .txt extention in JAVA?
我正在使用以下代碼將zip文件從一個目錄移動到另一個目錄。 同樣,我想移動除該目錄中存在的文本文件以外的所有目錄和文件。 我是怎么做到的?
Files.move(Paths.get("D:/Zip/"+zip.getName()), Paths.get("D:/Archive/"+zip.getName()));
我認為這是您要尋找的,如果您嘗試僅過濾以.txt
結尾的文件。 在這里,我正在使用Apache Common IO庫。
@Test
public void copyDirectory() throws IOException {
FileFilter txtFilterer = new FileFilter() {
@Override
public boolean accept(File file) {
return !file.getName().endsWith(".txt");
}
};
FileUtils.copyDirectory(new File("D:/Zip"), new File("C:/Archive"), txtFilterer);
FileUtils.cleanDirectory(new File("D:/Zip"));
}
如果您無權訪問第三方庫,可以在這里看看。 希望能有所幫助
您可以嘗試過濾所有不帶擴展名.txt的文件,並使用循環中已有的相同代碼移動所有其他文件。 例:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class Example1 {
public static void main(String[]args){
final String extension = ".txt";
final File sourceDir = new File("D:/Zip/");
final File destinationDir = new File("D:/Archive/");
File[] files = sourceDir.listFiles((File pathname) -> !pathname.getName().endsWith(extension));
for(File f : files ){
Path sourcePath = Paths.get(sourceDir.getAbsolutePath()+"\\"+f.getName());
Path destinationPath = Paths.get(destinationDir.getAbsolutePath()+"\\"+f.getName());
try {
Files.move(sourcePath, destinationPath,StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
//moving file failed.
e.printStackTrace();
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.