场景:
我的DOWNLOAD文件夹中有2个文件。 1. A.csv 2. B.csv
首先下载A.csv,然后下载B.csv。
我想将A.csv移至Folder1,并在文件移动后立即从下载文件夹中删除A.csv,然后下载B.csv文件并将其移至Folder2,并尽快文件移动后,B.csv应该会从下载文件夹中删除。
我的代码:
我在FileUtils.copyDirectory(source,dest)中收到“ FileUtils类型的copyDirectory(File,File,boolean)方法不适用于参数(File,File,new FileFilter(){})”错误,新的FileFilter()行,我的代码如下:
List<WebElement> list= wd.findElements(By.xpath("//table[@class='lcb']/tbody/tr/td/table[@class='ibody']/tbody/tr/td[contains(translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'csv')]/parent::tr/td[7]/a"));
for (WebElement element:list)
{
element.click();
++count;
if(count==1)
{
try{
File source = new File("C:\\Users\\sh370472\\Downloads");
File dest = new File("E:\\PAS\\");
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();
}
}
Thread.sleep(9000);
if(count==2)
{
File source1 = new File("C:\\Users\\sh370472\\Downloads");
File dest1 = new File("E:\\TAS\\");
FileUtils.copyDirectory(source1, dest1, new FileFilter() {
@Override
public boolean accept(File pathname)
{
boolean source1=pathname.getName().toLowerCase().endsWith(".csv");
if (source1)
{
pathname.deleteOnExit();
return true;
}
return false;
}
});
}
}
有人可以告诉我如何纠正此错误或建议任何替代方法
答案 0 :(得分:0)
FileUtils不是标准的Java实用程序类,但是从您的错误消息中,copyDirectory将布尔值作为最后一个参数,而不是过滤器。您应该弄清楚是否还有另一种采用过滤器的方法。
即使解决了问题,我也看不到您将文件下载到哪里。您正在从源复制到目的地,但是这两个都是目录-都不是FTP站点。
您需要首先从FTP站点下载文件列表,然后才能遍历该列表并下载/复制/删除每个文件。
您从不使用WebElement参数-文件列表来自哪里?