Недопустимая escape-последовательность (допустимы \ b \ t \ n \ f \ r \ "\ '\\) - PullRequest
0 голосов
/ 30 марта 2012

Хорошо, я пишу программу, которая передает файлы с моего 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 Ответ

1 голос
/ 30 марта 2012
String line =  "-shortcut -t c:/ocuments and Settings/%username%/Desktop/TS3/ts3client_win32.exe" "-n Teamspeak 3.lnk";

Эта линия кажется неправильной.У вас есть две строки без + между ними.

...