对不起,我修改了我的整个问题。
我想将一些特定文件(基于fileExtension
)从一个目录移动到另一个目录。
为此,我计划编写2个函数名称ListOfFileNames
和MovingFiles
。
如果您将directorypath
和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回答了我的问题。我未能将他的答案整合到我的函数中。所以我修改了我的问题。
再次抱歉,修改我的整个问题。
感谢。
答案 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();
}