CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

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

楼主supercctv(中央电视台)2003-06-01 16:52:56 在 C++ Builder / 基础类 提问

用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

相关问题

  • 文件路径,急需高人指点。
  • 急:如何将WINDOWS文件路径转化成DOS路径
  • 文件路径名
  • 用ASP创建文件夹时,路径如何变成虚拟路径?...............急..................
  • 用OpenDialog如何分别取出文件的路径和文件名?很急!
  • 求助!怎样根据文件名字得到文件所在的路径??急!!!
  • 救急:如何用Cfilefind得到给定文件夹中子文件的路径
  • 急!!如何截取带路径的文件名
  • 搜寻指定路径下的所有文件。急~~~
  • 急!怎样才能将文件存入到指定的路径

关键词

  • c++
  • 代码
  • 文件
  • 字符
  • 转化
  • 转义
  • 路径
  • 斜杠
  • copyfile
  • 程序

得分解答快速导航

  • 帖主:supercctv
  • chifengwatch
  • netsys2
  • Lersh
  • teatool
  • clong320

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo