如何将文件从一个目录移动到另一个目录

时间:2013-07-23 19:25:06

标签: java list

对不起,我修改了我的整个问题。

我想将一些特定文件(基于fileExtension)从一个目录移动到另一个目录。

为此,我计划编写2个函数名称ListOfFileNamesMovingFiles

如果您将directorypathfiletype作为参数传递给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回答了我的问题。我未能将他的答案整合到我的函数中。所以我修改了我的问题。

再次抱歉,修改我的整个问题。

感谢。

5 个答案:

答案 0 :(得分:4)

如果你想获得List<String>每个元素的相应文件的规范路径,请按以下步骤操作:

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

如果那不是你想要的,请澄清。

答案 1 :(得分:1)

如果使用guava了解您,我会以这种方式编写:

    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();
            }
        });
    }

答案 2 :(得分:0)

你无法转换它。但你可以在迭代文件列表时检索名称(它是什么)。一个非常方便的解决方案是LINQ,并选择

答案 3 :(得分:0)

这是我的答案。我在代码中使用了@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()));
    }
}

答案 4 :(得分:0)

您将文件从一个目录移动到另一个具有相同文件名的目录

  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();
    }