场景:
我在下载文件夹里有两个文件。1. A.csv 2. B.csv
首先下载A.csv,然后下载B.csv。
我想将A.csv移动到Folder1,一旦文件被移动,A.csv应该从下载文件夹中删除,然后B.csv文件应该被下载,它应该被移动到Folder2,并且一旦文件被移动,B.csv应该从下载文件夹中删除。
我的代码:
我在源( FileUtils,目标,新的FileFilter() )行中得到“copyDirectory(文件,文件,布尔值)类型中的方法不适用于参数(文件,文件,新的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;
}
});
}
}有人能告诉我如何纠正这个错误吗?或者有什么建议吗?
发布于 2018-12-04 01:43:41
FileUtils不是一个标准的java实用程序类,但是从您的错误消息中,copyDirectory接受一个布尔值作为最后一个参数,而不是一个过滤器。您应该弄清楚是否有另一种方法可以接受过滤器。
即使解决了这个问题,我也不知道从哪里下载文件。您正在从源文件复制到目标文件,但这两个文件都是目录--两者都不是FTP站点。
你需要从你的FTP站点下载一个文件列表开始,然后你可以遍历这个列表并下载/复制/删除每个文件。
您从不使用WebElement参数--您的文件列表就是从这里来的吗?
https://stackoverflow.com/questions/53598396
复制相似问题