更新:根据文件扩展名将文件从一个文件夹移动到另一个文件夹

我正在做一个自动化,我必须从一组文件中仅下载CSV文件。现在我只想将CSV文件从一个文件夹移动到另一个文件夹。

您能为我提供代码,以便在文件移动后立即从源文件夹中删除文件吗?

到目前为止,这是我的代码:

public class MyFilteredFileList {

public static void main(String a[])

{

try {

File source = new File("C:\\Users\\sh370472\\Downloads");

File dest = new File("E:\\Query\\");

FileUtils.copyDirectory(source, dest, new FileFilter() {

@Override

public boolean accept(File pathname)

{

boolean source=pathname.getName().toLowerCase().endsWith(".csv");

if (source)

return true;

return false;

}

});

} catch (IOException e) {

e.printStackTrace();

}

}

}

编辑:但是我仍然面临一个问题。它会立即下载所有文件,然后删除。但是我的要求是这样的-

它应该下载第一个文件->将下载的文件移到另一个文件夹中->从下载文件夹中删除第一个下载的文件->下载第二个文件夹…然后重复该过程

回答:

只需添加pathname.deleteOnExit(); 接受方法

@Override

public boolean accept(File pathname) {

boolean source = pathname.getName().toLowerCase().endsWith(".csv");

if (source) {

pathname.deleteOnExit();

return true;

}

return false;

}

整个代码:

import org.apache.commons.io.FileUtils;

import java.io.File;

import java.io.FileFilter;

import java.io.IOException;

/**

* Created by Lenovo on 02/12/2018.

*/

public class FileMove {

public static void main(String a[])

{

try {

File source = new File("C:\\Users\\sh370472\\Downloads");

File dest = new File("E:\\Query\\");

FileUtils.copyDirectory(source, dest, new FileFilter() {

@Override

public boolean accept(File pathname) {

boolean source = pathname.getName().toLowerCase().endsWith(".csv");

if (source) {

pathname.deleteOnExit();

return true;

}

return false;

}

});

} catch (IOException e) {

e.printStackTrace();

}

}

}

以上是 更新:根据文件扩展名将文件从一个文件夹移动到另一个文件夹 的全部内容, 来源链接: utcz.com/qa/419369.html

回到顶部