我用c#执行dos,复制个文件,提示文件找不到,由于路径长,有空格,怎么解决?

来源:百度知道 编辑:UC知道 时间:2024/05/20 08:09:43
我在c#里 执行dos 把桌面上的aa.txt 复制到c:\下
copy D:\Documents and Settings\sunzhanlun\桌面\c#原理\aa.txt c:\
不能实现
但是
copy d:\aa.txt c:\
能成功

在名上加双引号 也能成功
copy D:\"Documents and Settings"\sunzhanlun\桌面\c#原理\aa.txt c:\
在c#里怎么判断啊??非要用substring 判断有没空格?判断了怎么加空格啊??
谁有好的办法 ?或者是API 帮我写点代码 谢谢!!!

这是COPY命令的原因,因为在DOS操作系统中,凡是程序后面的字符串都做为程序的参数处理.多个参数用空格分隔...因为你复制到桌面的路径中包含空格,所以它会认为你的路径是多个参数.从而把路径拆解开.所以找不到路径...

解决的办法是这样的.

copy "源路径" "目录路径"

注意,不管路径中是否包含空格都要用双引号包含起来.像我上面的格式.这样就对了.

批处理中路径有空格必须用""括起来的,不然不能正确识别

就得在C#里判断一个有没有空格,如果有空格

再给字串加上引号,下面的链接是用 c# 怎样判断 回车和

空格,怎样在字符串里面替换

希望对你有用

http://topic.csdn.net/t/20040828/16/3318524.html

@"copy D:\Documents and Settings\sunzhanlun\桌面\c#原理\aa.txt c:\ "

用这样就可以了,路径中的\是转义字符.,因此要加@

怀疑是有空格的原因,你建一个有空格的文件夹跟没有空格的文件夹试试看吧