转义序列无效(有效转义序列为\ b \ t \ n \ f \ r \“\'\\ \)

时间:2012-03-30 19:08:49

标签: java escaping move shortcut createfile

好的,所以我正在编写一个程序,将文件从我的usb传输到计算机(所以我可以快速设置东西,以便我在星期一做的事情)并且我试图让它在桌面上制作一个快捷方式,这样你就不会必须进入已传输文件的源文件夹,以便在退出时再次启动程序。继承我的代码,标题是我得到的错误。

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);
    }
}
}

1 个答案:

答案 0 :(得分:1)

String line =  "-shortcut -t c:/ocuments and Settings/%username%/Desktop/TS3/ts3client_win32.exe" "-n Teamspeak 3.lnk";

这条线似乎格格不入。你有两个没有+的字符串。