文件路径的问题,急!!!(会死人的)
用savedialog取得的filename是比如这样的路径f:\a\1.txt
那么如果在程序中要使用这个路径,要转化为f:\\a\\1.txt
怎么做?
问题点数:100、回复次数:22Top
1 楼chifengwatch(chifengwatch)回复于 2003-06-01 17:02:10 得分 5
如果在程序中要使用这个路径,不用转化Top
2 楼netsys2(来电!)回复于 2003-06-01 17:05:08 得分 50
不知道你想做什么,
f:\a\1.txt是真实的存储模式,
f:\\a\\1.txt是你写代码时采用的模式,实际上没有什么区别!
如果你只是想获得某文件名包含的路径,那么你可以用:
AnsiString bakdir = ExtractFileDir(filename);
Top
3 楼Lersh(暑片)回复于 2003-06-01 17:07:53 得分 5
不用转化,实际字符串就是"f:\a\1.txt"
只有在代码里"\"才写成"\\"Top
4 楼teatool(美貌与智慧并重,英雄与侠义的化身)回复于 2003-06-01 17:09:14 得分 20
如果是在程序运行时得到这样的路径名,那么不需要转化,直接用就行了。“\\”的情况只在手工写的代码中才这样用,因为\号在C/C++中是转意符。其实你在代码中写的C:\\abc\\def.txt,在程序运行时内存中的并不是这串字符,而是C:\abc\def.txt,也就是说\号是给编译器看的,程序运行时并不起作用Top
5 楼s98231106(Wilson)(若即若离花)回复于 2003-06-01 17:30:14 得分 0
不用转。Top
6 楼qibo999(行路者)回复于 2003-06-01 18:23:32 得分 0
不用转。
程序中的"\\abc"与显示出来的 \abc 是一样的,第一个斜杠是转义字符。
上次给一位兄弟解释半天,累的我半死,他好象还不明白,可能他要的真是一个空字符'\0',哎.Top
7 楼wayenlee((★★★★★))回复于 2003-06-01 18:29:05 得分 0
upTop
8 楼realplayer53(田)回复于 2003-06-01 19:01:18 得分 0
up!Top
9 楼supercctv(中央电视台)回复于 2003-06-01 22:09:52 得分 0
问题是这样的,用 copyfile()复制的时候出错,复制不成功。Top
10 楼qibo999(行路者)回复于 2003-06-01 22:25:05 得分 0
你只要记住:
1、你在代码中手工输入的,'\\'就代表实际的一个\;
2、从控件中或运行界面输入得到的,不用再处理,就是实际的\,一个顶一个,直接用就行了。Top
11 楼laoriver08(才疏学浅的鸟)回复于 2003-06-01 22:29:53 得分 0
大家基本上都说完了Top
12 楼hitbabiq(仰天长啸)回复于 2003-06-02 08:17:54 得分 0
来往了,支持!Top
13 楼lanren_me(阿波)回复于 2003-06-02 08:39:44 得分 0
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TReplaceFlags rf;
rf << rfReplaceAll;
AnsiString s=Edit1->Text;
Edit1->Text=StringReplace(s,"\\","\\\\",rf);
}Top
14 楼clong320(clong320)回复于 2003-06-02 13:07:32 得分 20
在C或C++里(其它语言中也是)有些符键盘上无法输入,如CR,LF,TAB等;有些符号被使用在命令语法中作为命令语法用符而不表示符号本身的意义,即这些符号不会被处理成显示符号,如:单引号'、双引号"。若要想在字符串中显示'、"或其它特殊符号时,必须在前面加上转义符“\”,如:\" -- 表示要显示双引号"
\' -- 表示要显示单引号'
........
(有关其它特殊符号可以找一本C或C++的基础教材看一看就明白了)。
那麽要将转义符“\”作为其本身(反斜杠)使用时就规定在其前面再加上转义符“\”,即路径目录中\(反斜杠)的表示方法为\\。Top
15 楼Behard(我爱天安门)回复于 2003-06-02 14:11:12 得分 0
问题是这样的,用 copyfile()复制的时候出错,复制不成功。
具体是什么错误呀?
因为使用 CopyFile 要求比较严格容易出错
当为只读、系统等文件属性时,CopyFile 可能不成功,要先修改文件属性才行
可以使用 SHFileOperation 来操作
Top
16 楼loking(loking)回复于 2003-06-02 14:53:12 得分 0
不用转。
程序中的"\\abc"与显示出来的 \abc 是一样的,第一个斜杠是转义字符。Top
17 楼evence(牧歌平台)回复于 2003-06-02 16:08:26 得分 0
差不多就这些了。Top
18 楼100geOK(OKOK)回复于 2003-06-02 16:29:35 得分 0
直接可以用的,不需要多加什么东西了。Top
19 楼Yans(跟贴是一种友谊)回复于 2003-06-02 16:34:16 得分 0
ExtractFileDir(filename);Top
20 楼qiuafa()回复于 2003-06-02 17:05:49 得分 0
画蛇添足Top
21 楼shanewest1(炉子)回复于 2003-06-02 17:27:56 得分 0
清楚了
还有问题吗?Top
22 楼PoorAngel(安琪儿)回复于 2003-06-02 17:34:46 得分 0
^_^!Top




