我正在嘗試使用Apache Common的FileUtil來使用CopyDirectory將文件傳輸到其他磁盤上。但是,在傳輸我的文檔時我遇到了一個錯誤。此外,我不知道爲什麼,但是當我選擇像C:\ Users [UserName] \ Documents這樣的特定路徑時,它不會給我JUST文檔中的內容,它給了我用戶文件夾中的其他文件夾..我不知道這是爲什麼。當我在MyDocuments上運行CopyDirectory時,我也IOException ...當它試圖複製MyMusic(我不知道它爲什麼這樣做的第一個地方Java Apache Commons FileUTIL CopyDirectory異常
在我的代碼中,它正確地複製收藏夾和桌面... 。雖然看似在收藏夾中的「收藏夾工具欄」已經改變了文件夾「鏈接」文件夾
任何幫助將是巨大的感謝
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.commons.io.*;
public class TransferJet {
public static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
System.out.print("Please enter the username:");
String user = in.readLine();
System.out.print("Please enter the drive letter of the old primary partition:");
String oldPrimaryLetter = in.readLine();
System.out.print("Please enter the drive letter of the old secondary partition:");
String oldSecondaryLetter = in.readLine();
System.out.print("Please enter the drive letter of the new primary partition:");
String newPrimaryLetter = in.readLine();
System.out.print("Please enter the driver letter of the new secondary partition:");
String newSecondaryLetter = in.readLine();
if(user.equals("") || oldSecondaryLetter.equals("") || oldPrimaryLetter.equals("") || newPrimaryLetter.equals("") || newSecondaryLetter.equals(""))
{
System.out.println("Invalid directory or file name.");
System.exit(0);
}
String newFiles = "";
String oldFiles = "";
File source = null;
File destination = null;
System.out.println("Moving Favorites...");
oldFiles = oldPrimaryLetter + ":\\Users\\" + user + "\\Favorites";
//String oldFilesA = "C:\\Users\\ashih\\Favorites";
//String newFilesA = "G:\\Users\\ashih\\Favorites";
newFiles = newPrimaryLetter + ":\\Users\\" + user + "\\Favorites";
source = new File(oldFiles);
destination = new File(newFiles);
FileUtils.copyDirectory(source, destination);
System.out.println("Moving Desktop...");
oldFiles = oldPrimaryLetter + ":\\Users\\" + user + "\\Desktop";
newFiles = newPrimaryLetter + ":\\Users\\" + user + "\\Desktop";
source = new File(oldFiles);
destination = new File(newFiles);
FileUtils.copyDirectory(source, destination);
System.out.println("Moving My Documents...");
oldFiles = oldPrimaryLetter + ":\\Users\\" + user + "\\";
newFiles = newPrimaryLetter + ":\\Users\\" + user + "\\Documents";
source = new File(oldFiles);
destination = new File(newFiles);
FileUtils.copyDirectory(source, destination);
System.out.println("Moving Old Secondary to New Secondary...");
oldFiles = oldSecondaryLetter + ":\\";
newFiles = newSecondaryLetter + ":\\";
source = new File(oldFiles);
destination = new File(newFiles);
FileUtils.copyDirectory(source, destination);
}
}
有什麼異常?主要的問題(我能想到的是我的頭頂)是,你試圖複製的許多目錄實際上是「鏈接」(更準確地說,通常是連接點),Java/IO Commons可能不是能夠處理 – MadProgrammer 2012-07-20 23:17:25
我不再在計算機上使用代碼,但我相信它是MyMusic的IO Exception.IO(不記得具體的錯誤)。我嘗試刪除MyMusic文件夾以查看會發生什麼,然後我收到了IOException(拒絕訪問我的音樂)行。反正有鏈接到我的文檔不是「鏈接」或有路口。我只是想要在我的文檔文件夾中的內容... – Alan 2012-07-20 23:44:35