簡體   English   中英

如何將文件從一個目錄移動到另一個目錄

[英]How can move file from one directory to another

對不起,我修改了整個問題。

我想將一些特定的文件(基於fileExtension )從一個目錄移動到另一個目錄。

為此,我計划編寫2個函數名稱,分別是ListOfFileNamesMovingFiles

如果將directorypath ListOfFileNames()filetype作為參數傳遞給ListOfFileNames() ,則它將返回List<File>此列表具有完整的文件路徑。

MovingFiles()將文件從源目錄移動到目標。

我以下面的方式嘗試了MovingFiles函數,它不起作用。

public void MovingFiles(String SourcePath,String directoryPath,String fileType) throws IOException
{
    ExternalFileExecutions ExternalFileExecutionsObject=new ExternalFileExecutions();
    List<File> fileNames=ExternalFileExecutionsObject.ListOfFileNames(SourcePath, fileType);
    for (int fileIndex = 0; fileIndex < fileNames.size(); fileIndex++) 
    {
        fileNames[fileIndex].renameTo(new File(directoryPath+"/" + fileNames[fileIndex].getName()))
    }
}

我認為,我需要將List<File>轉換為List<String>這就是為什么我之前這樣問過。

@tbodt回答了我的問題。我未能將他的回答整合到我的函數中。所以我修改了我的問題。

再次抱歉,修改了我的整個問題。

謝謝。

如果要獲取一個List<String> (每個元素都是對應文件的規范路徑),則方法如下:

List<String> list = new ArrayList<String>();
for (File file : finalListNames)
    list.add(file.getCanonicalPath());

如果這不是您想要的,請進行說明。

如果了解您的使用番石榴 ,我會這樣寫:

    public static List<File> listOfFiles(){
        return Lists.newArrayList(new File("source.txt"), new File("test.txt"));
    }

    public static List<String> listOfFileNames(){
        return Lists.transform(listOfFiles(), new Function<File, String>() {
            public String apply(File input) {
                return input.getAbsolutePath();
            }
        });
    }

您無法轉換。 但是您可以做的是,您可以在遍歷“文件”列表時檢索名稱(無論它是什么)。 LINQ是一個非常方便的解決方案,然后選擇

這是我的答案。 我在代碼中使用了@tbodt代碼。

public void MovingFiles(String SourcePath,String directoryPath,String fileType) throws IOException
{
    ExternalFileExecutions ExternalFileExecutionsObject=new ExternalFileExecutions();
    List<File> fileNames=ExternalFileExecutionsObject.ListOfFileNames(SourcePath, fileType);
    List<String> list = new ArrayList<String>();
    for (File file : fileNames)
    list.add(file.getCanonicalPath());
    for (int fileIndex = 0; fileIndex < list.size(); fileIndex++)
    {
        File file=new File(list.get(fileIndex));
        file.renameTo(new File(directoryPath+"/",file.getName()));
    }
}

您將文件從一個目錄移動到另一個具有相同文件名的目錄

  try{
       File afile =new File("C:\\folder1\\file1.txt");
       if(afile.renameTo(new File("C:\\folder2\\" + afile.getName()))){
        System.out.println("File is moved successful!");
       }else{
        System.out.println("File is failed to move!");
       }

    }catch(Exception e){
        e.printStackTrace();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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