`
wandejun1012
  • 浏览: 2745401 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java process copy

    博客分类:
  • java
 
阅读更多

 

/**
	 * 
	 * @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调用windows命令

    Java提供了Runtime类和Process类来实现这一功能。以下是如何使用Java调用Windows命令行的详细步骤和注意事项: 1. **调用外部程序** - 使用`Runtime.getRuntime().exec()`方法创建一个子进程来执行指定的可执行...

    java调用cmd创建目录和复制文件

    Process processCopy = Runtime.getRuntime().exec(copyCmd); processCopy.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); } } ``` 这里,`Runtime.getRuntime().exec...

    java调用dos命令

    接下来,我们讨论如何使用Java调用DOS命令`copy`来复制文件。在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来执行外部命令。以下代码展示了如何复制一个文件到指定位置: ```java public class ...

    编程语言java批处理.pdf

    Process process = Runtime.getRuntime().exec("cmd /c start copy exe1 exe2"); ``` 这里执行了`start`命令来复制文件。需要注意的是,这类操作通常适用于Windows操作系统,而在类Unix系统中,相应的命令和处理...

    java用ffmpeg截取视频图片

    String command = "ffmpeg -ss 00:01:00 -i " + videoPath + " -to 00:02:00 -c copy output.mp4"; ``` 这个命令会从视频的1分钟处开始,剪辑1分钟的片段,并保持原编码输出为新的视频文件。 FFmpeg 支持多种视频...

    java上传调用ffmpeg转码截图截取视频

    String transcodeCommand = "ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 -c:a copy output.mp4"; executeFFmpegCommand(transcodeCommand); ``` 获取视频时长,我们可以使用`ffprobe`,它是FFmpeg的一...

    java 调用 windows cmd 命令

    例如,`copy`命令可以用来复制文件,`move`或`ren`命令可以用来重命名或移动文件。在Java中调用这些命令时,只需将相应的命令替换到上述的`exec()`或`ProcessBuilder`中即可。 **注意安全**: 当调用CMD命令时,要...

    java dos界面实现的简单的文件复制、创建

    Process process = Runtime.getRuntime().exec(cmd); // 这里可以处理进程的输入、输出和错误流 } catch (IOException e) { e.printStackTrace(); } ``` 二、文件复制 在DOS界面中,我们使用`copy`命令来复制...

    java9 sdk api specification docs API参考文档 英文版 HTML格式

    3. Process API增强:Java 9对处理外部进程的API进行了改进,提供了更强大的控制和监视功能,如`ProcessHandle`类和`ProcessBuilder`类的扩展。 4. Stream API增强:Java 9对Stream API进行了扩展,添加了`...

    java实现sshd协议帮助文档

    copy(process.getErrorStream(), err); int exitCode = process.waitFor(); callback.onExit(exitCode); } private void copy(InputStream input, OutputStream output) throws IOException { byte[] buffer...

    JAVA中如何执行DOS指令_.docx

    为了解决这个问题,可以使用Java的`Process`类读取并处理这些输出。例如,以下代码展示了如何读取并打印`dir`命令的输出: ```java Process process = Runtime.getRuntime().exec("cmd /c dir windows"); ...

    JAVA执行DOS命令分析

    在Java中,我们使用`Runtime.exec()`,而在C#中,我们可以使用`System.Diagnostics.Process`类。虽然两者都提供了执行外部命令的能力,但在具体实现和异常处理上可能存在差异,需要根据具体场景进行适配。 总结来说...

    java 连接linux俩种方式

    JSch提供了丰富的功能,包括SFTP(SSH文件传输协议)、SCP(Secure Copy)以及SSH命令执行。使用JSch,你可以实现更复杂的Linux操作,如文件上传下载、交互式命令执行等。以下是一个简单的JSch执行命令的例子: ```...

    java_bat.rar_DEMO

    - .bat文件通常包含一系列DOS命令,如`copy`, `move`, `del`, `mkdir`, `rmdir`等,以及调用其他程序或脚本的能力。在DEMO中,批处理文件可能执行了一些特定的任务,例如文件复制、文件删除或者运行其他程序。 7. ...

    Java 运行 bat 文件

    理解这些命令的语法和用法,如`copy`, `del`, `mkdir`等,有助于更好地编写bat文件并从Java程序中调用。 总结,Java运行bat文件主要依赖于Runtime类或ProcessBuilder类,需要处理好输出流,注意异常处理,并根据...

    ambari报错解决

    报错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

    java调用perl脚本并压缩zip

    Process process = Runtime.getRuntime().exec("perl " + perlScriptPath); ``` 这里,`perlScriptPath`是Perl脚本的路径。执行这个脚本后,Perl会运行并生成Excel文件。在Perl脚本中,你可以使用诸如`Spreadsheet::...

    Java邮件开发Fundamentals of the JavaMail API

    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, ...

    java服务将rtsp视频流转成rtmp视频流

    Process process = Runtime.getRuntime().exec("ffmpeg -i " + rtspUrl + " -c copy -f flv " + rtmpUrl); // 处理进程输出和错误 } catch (IOException e) { e.printStackTrace(); } } } ``` 3. **GStreamer...

    ffmpeg完成音视频合成

    在Java环境中,我们可以利用JNI(Java Native Interface)或者通过执行系统命令的方式来调用FFmpeg的exe文件,实现音视频的处理功能。本话题将深入探讨如何使用Java嵌入FFmpeg.exe来完成音视频的合成。 首先,我们...

Global site tag (gtag.js) - Google Analytics