[英]How can move file from one directory to another
對不起,我修改了整個問題。
我想將一些特定的文件(基於fileExtension
)從一個目錄移動到另一個目錄。
為此,我計划編寫2個函數名稱,分別是ListOfFileNames
和MovingFiles
。
如果將directorypath
ListOfFileNames()
和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回答了我的問題。我未能將他的回答整合到我的函數中。所以我修改了我的問題。
再次抱歉,修改了我的整個問題。
謝謝。
如果要獲取一個List<String>
(每個元素都是對應文件的規范路徑),則方法如下:
List<String> list = new ArrayList<String>();
for (File file : finalListNames)
list.add(file.getCanonicalPath());
如果這不是您想要的,請進行說明。
如果了解您的使用番石榴 ,我會這樣寫:
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();
}
});
}
您無法轉換。 但是您可以做的是,您可以在遍歷“文件”列表時檢索名稱(無論它是什么)。 LINQ是一個非常方便的解決方案,然后選擇
這是我的答案。 我在代碼中使用了@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()));
}
}
您將文件從一個目錄移動到另一個具有相同文件名的目錄
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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.