来自Java的CMD文件副本

Zom*_*ie8 2 java

我打算打开一个命令提示符并传入一个复制命令,一些开关,源文件加目标.我已经尝试了下面的代码,但似乎没有发生任何事情.我没看到什么?我能做错什么?

String line;

line = "cmd COPY /Y C:\srcfolder\112.bin C:\destfolder";

Process p = Runtime.getRuntime().exec(line);

p.waitFor();
Run Code Online (Sandbox Code Playgroud)

vla*_*adr 9

如果你真的必须使用外部命令,那么你可能想要执行(注意/ C):

CMD /C COPY /Y C:\srcfolder\112.bin C:\destfolder
Run Code Online (Sandbox Code Playgroud)

我建议你使用数组版本exec来避免处理引用(如果任何文件或目录包含空格 - 或双引号 - 在其中):

String[] args = { "CMD", "/C", "COPY", "/Y", src_file, dest_folder };
Process p = Runtime.getRuntime().exec(args);
p.waitFor();
Run Code Online (Sandbox Code Playgroud)

请记住,这不是可移植的(在Unix上不起作用),所以除非你真的需要使用,COPY否则你应该使用链接到的方法bstpierre.