作者VictorTom (鬼翼&娃娃鱼)
看板C_and_CPP
标题Re: [问题] 系统找不到路径@.@......
时间Sun Sep 6 00:07:49 2009
※ 引述《liu2007 (薯)》之铭言:
: 它都读的到123.txt了
: 而且也能帮我做我要的动作
: 为什麽最後不能删除?
恕删一堆东西....
: → VictorTom:"del \"C:\\Documents .... \\321.txt\"" 09/05 23:34
: → VictorTom:简单的说把要del的完整路径用双引号""括起来试试:) 09/05 23:34
: 推 QQ29:楼上请教为啥要这样做呀?? 我没有刮起来也可以删耶@@ 09/05 23:50
: 推 VictorTom:我有点懒, 直接回文骗P币吧.... 09/05 23:59
我直接贴结果吧, 自己看一看应该就懂了....
================
C:\>cd "Documents and Settings\ABCD"
C:\Documents and Settings\ABCD>copy con test.txt
test....
^Z
复制了 1 个档案。
C:\Documents and Settings\ABCD>cd\
==
C:\>del C:\Documents and Settings\ABCD\test.txt
系统找不到指定的路径。
==
C:\>del "C:\Documents and Settings\ABCD\test.txt"
/* 注: delete 成功, 没有错误讯息. */
================
问题在於, console下, 指令後面空格接的东西是它的参数....
多个空格, 是格开多个参数用的, 写过main / argc / argv就知道....
而windows的user profile的路径中间有空格....
你不用""括起来, 系统会认为空格後的是下一个参数....
而没有办法把C:\Documents and Settings\ABCD\test.txt当作是一个完整路径....
所以要把完整路径用""括起来, 这样系统会把整串""里的东西当作一个参数....
而你原本没有括也可以, 应该是因为你的完整路径里没有空白字元....
简单的说, 用system()传的参数, 就是你在console下直接下的指令:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.174.98
※ 编辑: VictorTom 来自: 220.132.174.98 (09/06 00:09)
1F:推 QQ29:欧 原来是空格阿 好傻 竟然没想到 谢谢V大 09/06 00:12