-2
好的,所以即時編寫程序,從我的USB傳輸文件到計算機(所以我可以設置的東西快速爲週一即將做的事情),並試圖讓它在桌面上做一個快捷方式,所以你不必進入文件傳輸的源文件夾,所以你可以啓動程序,以防止你退出它。我的代碼,標題是錯誤即時得到。無效的轉義序列(有效的轉義序列是 b t n f r 「'\)
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class Mover {
public static void main(String[] args) throws IOException, InterruptedException {
String usb = new File(".").getAbsolutePath();
String desktop = System.getProperty("user.home") + "/Desktop";
File srcFolder = new File(usb + "/Teamspeak 3");
File destFolder = new File(desktop + "/TS3");
//make sure source exists
if(!srcFolder.exists()){
System.out.println("Directory does not exist.");
//just exit
System.exit(0);
}else{
try{
copyFolder(srcFolder,destFolder);
}catch(IOException e){
e.printStackTrace();
//error, just exit
System.exit(0);
}
}
System.out.println("Done");
String cmd = "ls -al";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
pr.waitFor();
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "-shortcut -t c:/ocuments and Settings/%username%/Desktop/TS3/ts3client_win32.exe" "-n Teamspeak 3.lnk";
while ((line=buf.readLine())!=null) {
System.out.println(line);
Process process = Runtime.getRuntime().exec (desktop + "/TS3/ts3client_win32.exe");
System.exit(0);
}
}
public static void copyFolder(File src, File dest)
throws IOException{
if(src.isDirectory()){
//if directory not exists, create it
if(!dest.exists()){
dest.mkdir();
System.out.println("Directory copied from "
+ src + " to " + dest);
}
//list all the directory contents
String files[] = src.list();
for (String file : files) {
//construct the src and dest file structure
File srcFile = new File(src, file);
File destFile = new File(dest, file);
//recursive copy
copyFolder(srcFile,destFile);
}
}else{
//if file, then copy it
//Use bytes stream to support all file types
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
in.close();
out.close();
System.out.println("File copied from " + src + " to " + dest);
}
}
}
你似乎在Windows路徑中使用UNIX分隔符('/'),您是否嘗試過使用'File.separator'來代替? – 2012-03-30 19:14:00
錯誤是哪一行? – 2012-03-30 19:15:02
發佈完整堆棧跟蹤。 – kosa 2012-03-30 19:15:46