/** * * @param sourceFile * 待复制的源文件,必须用双反斜杠 * @param targetDir * 待复制到的目录,必须用双反斜杠 * @return * @throws Exception */ @Override public int copyFiles(String sourceFile, String targetDir) throws Exception { Runtime runtime = Runtime.getRuntime(); int result; try { result = 0; StringBuilder sbStr = new StringBuilder(); sbStr.append("xcopy /y /d ").append(sourceFile).append(" ").append(targetDir).append(" "); Process process = runtime.exec(sbStr.toString()); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); } is.close(); isr.close(); br.close(); if (null != sb && !sb.toString().equals("")) { String strResult = sb.toString(); int copyIndex = strResult.indexOf("复制了"); int startIndex = copyIndex + 3; int endIndex = copyIndex + 5; result = Integer .parseInt(strResult.substring(startIndex, endIndex).trim()); } } catch (Exception e) { e.printStackTrace(); result=0; } return result; }
public void testCopyMethod(){ IMonitorService monitorService=new MonitorServiceImpl(); String sourceFile="d:\\temp\\testcopy\\source\\*.*"; String targetDir="d:\\temp\\testcopy\\target"; try { int number=monitorService.copyFiles(sourceFile, targetDir); System.out.println("复制了"+number+"个文件"); } catch (Exception e) { e.printStackTrace(); } }
注意:源文件或者目的文件必须用双斜杠,用反斜杠不行。。。。
另外,中文字符串的长度其实和英文的计算方法一样。但是这里通过CMD调用返回后的值确实诡异,所以截取是[3,5).
RefUrl:http://stackoverflow.com/questions/592262/cmd-file-copy-from-java
相关推荐
Java提供了Runtime类和Process类来实现这一功能。以下是如何使用Java调用Windows命令行的详细步骤和注意事项: 1. **调用外部程序** - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行...
Process processCopy = Runtime.getRuntime().exec(copyCmd); processCopy.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } ``` 这里,`Runtime.getRuntime().exec...
接下来,我们讨论如何使用Java调用DOS命令`copy`来复制文件。在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来执行外部命令。以下代码展示了如何复制一个文件到指定位置: ```java public class ...
Process process = Runtime.getRuntime().exec("cmd /c start copy exe1 exe2"); ``` 这里执行了`start`命令来复制文件。需要注意的是,这类操作通常适用于Windows操作系统,而在类Unix系统中,相应的命令和处理...
String command = "ffmpeg -ss 00:01:00 -i " + videoPath + " -to 00:02:00 -c copy output.mp4"; ``` 这个命令会从视频的1分钟处开始,剪辑1分钟的片段,并保持原编码输出为新的视频文件。 FFmpeg 支持多种视频...
String transcodeCommand = "ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 -c:a copy output.mp4"; executeFFmpegCommand(transcodeCommand); ``` 获取视频时长,我们可以使用`ffprobe`,它是FFmpeg的一...
例如,`copy`命令可以用来复制文件,`move`或`ren`命令可以用来重命名或移动文件。在Java中调用这些命令时,只需将相应的命令替换到上述的`exec()`或`ProcessBuilder`中即可。 **注意安全**: 当调用CMD命令时,要...
Process process = Runtime.getRuntime().exec(cmd); // 这里可以处理进程的输入、输出和错误流 } catch (IOException e) { e.printStackTrace(); } ``` 二、文件复制 在DOS界面中,我们使用`copy`命令来复制...
3. Process API增强:Java 9对处理外部进程的API进行了改进,提供了更强大的控制和监视功能,如`ProcessHandle`类和`ProcessBuilder`类的扩展。 4. Stream API增强:Java 9对Stream API进行了扩展,添加了`...
copy(process.getErrorStream(), err); int exitCode = process.waitFor(); callback.onExit(exitCode); } private void copy(InputStream input, OutputStream output) throws IOException { byte[] buffer...
为了解决这个问题,可以使用Java的`Process`类读取并处理这些输出。例如,以下代码展示了如何读取并打印`dir`命令的输出: ```java Process process = Runtime.getRuntime().exec("cmd /c dir windows"); ...
在Java中,我们使用`Runtime.exec()`,而在C#中,我们可以使用`System.Diagnostics.Process`类。虽然两者都提供了执行外部命令的能力,但在具体实现和异常处理上可能存在差异,需要根据具体场景进行适配。 总结来说...
JSch提供了丰富的功能,包括SFTP(SSH文件传输协议)、SCP(Secure Copy)以及SSH命令执行。使用JSch,你可以实现更复杂的Linux操作,如文件上传下载、交互式命令执行等。以下是一个简单的JSch执行命令的例子: ```...
- .bat文件通常包含一系列DOS命令,如`copy`, `move`, `del`, `mkdir`, `rmdir`等,以及调用其他程序或脚本的能力。在DEMO中,批处理文件可能执行了一些特定的任务,例如文件复制、文件删除或者运行其他程序。 7. ...
理解这些命令的语法和用法,如`copy`, `del`, `mkdir`等,有助于更好地编写bat文件并从Java程序中调用。 总结,Java运行bat文件主要依赖于Runtime类或ProcessBuilder类,需要处理好输出流,注意异常处理,并根据...
报错1: Using python /usr/bin/python ...REASON: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java and set property server.jdbc.driver.path=[path/to/c
Process process = Runtime.getRuntime().exec("perl " + perlScriptPath); ``` 这里,`perlScriptPath`是Perl脚本的路径。执行这个脚本后,Perl会运行并生成Excel文件。在Perl脚本中,你可以使用诸如`Spreadsheet::...
Looking to incorporate mail facilities into your platform-independent Java solutions? Look no further than the JavaMail API, which offers a protocol-independent model for working with IMAP, POP, ...
Process process = Runtime.getRuntime().exec("ffmpeg -i " + rtspUrl + " -c copy -f flv " + rtmpUrl); // 处理进程输出和错误 } catch (IOException e) { e.printStackTrace(); } } } ``` 3. **GStreamer...
在Java环境中,我们可以利用JNI(Java Native Interface)或者通过执行系统命令的方式来调用FFmpeg的exe文件,实现音视频的处理功能。本话题将深入探讨如何使用Java嵌入FFmpeg.exe来完成音视频的合成。 首先,我们...