用getRuntime().exec()调用系统copy、xcopy命令

用getRuntime().exec()调用系统copy、xcopy命令去做文件或者文件夹的copy已经非常不推荐了,虽然该方法效率上比较高,但有很多附加的隐患,比如当copy失败的时候,程序就会卡在那里,这是程序执行的时候所不允许出现的;因此推荐另外一种解决方案:使用Apache的开源项目Commons-IO中的FileUtils去做文件copy工作,效率也是非常高的,而且不会出现程序卡的那里的情况;

--------------------------------------------------------------------------------------------------------------------------

参考文档地址:

http://bjyzxxds.iteye.com/blog/453151

总结一下:

1.用getRuntime().exec()调用copy:

windows中的copy命令:copy [源文件路径] [目标文件路径或目标文件的父文件夹路径]

正确的写法示例如下:

java.lang.Runtime.getRuntime().exec("cmd /c copy C:\\cubeETL_TEST\\cog\\buildDir\\231.mdc C:\\cubeETL_TEST\\cog\\publish1\\231.mdc");

2. 用getRuntime().exec()调用xcopy:

windows中的xcopy命令:xcopy [源文件夹路径] [目标文件夹路径]     (以及一系列参数)

正确的写法示例:

java.lang.Runtime.getRuntime().exec("cmd /c xcopy C:\\cubeETL_TEST\\cog\\buildDir\\231  C:\\cubeETL_TEST\\cog\\publish1\\231\\ /E /H"); 

像原文中所说的,源目录路径后面不要带“\”,而目标路径后面需要带“\”,这一点我们自己尝试一下就知道为什么要这样了,另外一点,该处需要加相应的参数,/E表示将复制目录和子目录,包括空目录;/H表示复制包括隐藏文件和系统文件;我个人觉得这两个参数一般都要加的;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值