• 全部
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

文件路径的问题,急!!!(会死人的)

supercctv 2003-06-01 04:52:56
用savedialog取得的filename是比如这样的路径f:\a\1.txt

那么如果在程序中要使用这个路径,要转化为f:\\a\\1.txt
怎么做?
...全文
9 1 收藏 22
写回复
22 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lanren_me 2003-06-02
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TReplaceFlags rf;
rf << rfReplaceAll;
AnsiString s=Edit1->Text;
Edit1->Text=StringReplace(s,"\\","\\\\",rf);

}
回复
hitbabiq 2003-06-02
来往了,支持!
回复
PoorAngel 2003-06-02
^_^!
回复
shanewest1 2003-06-02
清楚了

还有问题吗?
回复
qiuafa 2003-06-02
画蛇添足
回复
「已注销」 2003-06-02
ExtractFileDir(filename);
回复
100geOK 2003-06-02
直接可以用的,不需要多加什么东西了。
回复
evence 2003-06-02
差不多就这些了。
回复
loking 2003-06-02
不用转。
程序中的"\\abc"与显示出来的 \abc 是一样的,第一个斜杠是转义字符。
回复
Behard 2003-06-02
问题是这样的,用 copyfile()复制的时候出错,复制不成功。

具体是什么错误呀?
因为使用 CopyFile 要求比较严格容易出错
当为只读、系统等文件属性时,CopyFile 可能不成功,要先修改文件属性才行
可以使用 SHFileOperation 来操作
回复
clong320 2003-06-02
在C或C++里(其它语言中也是)有些符键盘上无法输入,如CR,LF,TAB等;有些符号被使用在命令语法中作为命令语法用符而不表示符号本身的意义,即这些符号不会被处理成显示符号,如:单引号'、双引号"。若要想在字符串中显示'、"或其它特殊符号时,必须在前面加上转义符“\”,如:\" -- 表示要显示双引号"
\' -- 表示要显示单引号'
........
(有关其它特殊符号可以找一本C或C++的基础教材看一看就明白了)。
那麽要将转义符“\”作为其本身(反斜杠)使用时就规定在其前面再加上转义符“\”,即路径目录中\(反斜杠)的表示方法为\\。
回复
laoriver08 2003-06-01
大家基本上都说完了
回复
qibo999 2003-06-01
你只要记住:
1、你在代码中手工输入的,'\\'就代表实际的一个\;
2、从控件中或运行界面输入得到的,不用再处理,就是实际的\,一个顶一个,直接用就行了。
回复
supercctv 2003-06-01
问题是这样的,用 copyfile()复制的时候出错,复制不成功。
回复
realplayer53 2003-06-01
up!
回复
wayenlee 2003-06-01
up
回复
qibo999 2003-06-01
不用转。
程序中的"\\abc"与显示出来的 \abc 是一样的,第一个斜杠是转义字符。

上次给一位兄弟解释半天,累的我半死,他好象还不明白,可能他要的真是一个空字符'\0',哎.
回复
s98231106 2003-06-01

不用转。
回复
teatool 2003-06-01
如果是在程序运行时得到这样的路径名,那么不需要转化,直接用就行了。“\\”的情况只在手工写的代码中才这样用,因为\号在C/C++中是转意符。其实你在代码中写的C:\\abc\\def.txt,在程序运行时内存中的并不是这串字符,而是C:\abc\def.txt,也就是说\号是给编译器看的,程序运行时并不起作用
回复
Lersh 2003-06-01
不用转化,实际字符串就是"f:\a\1.txt"
只有在代码里"\"才写成"\\"
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2003-06-01 04:52
社区公告
暂无公告