簡體   English   中英

如何在JAVA中使用.txt擴展名將所有文件從一個路徑移動到另一路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM