CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

这个简单的问题困扰了我很久了, 100分送给真心解决者!

楼主dxhdxh2k(dxhdxh)2003-04-03 17:46:23 在 VC/MFC / 基础类 提问

我想读一个文件:  
  aa.txt,其中只有一行,指明了局域网内的一个路径的文件.其中nt为网络计算机名.  
  \\\\nt02\\我的数据\\2003.txt  
  我写了如下:  
  CString   strLine;  
  CStdioFile   filegetdata,fileDest;  
  if(!filegetdata.Open("aa.txt",   CFile::modeRead))    
        {  
                  AfxMessageBox(_T("Can't   open   the   aa.txt   file!"));  
                  return;  
        }  
  filegetdata.ReadString(strLine);  
  if(!fileDest.Open(strLine,CFile::modeRead))  
  {  
                  AfxMessageBox(_T("Can't   open   the   strLine   file!"));  
                  return;  
        }  
   
  错误总是出现!Can't   open   the   strLine   file!  
  如果将fileDest.Open(strLine,CFile::modeRead)直接换成  
  fileDest.Open("\\\\nt02\\我的数据\\2003.txt  
  ",CFile::modeRead))就可以了!  
  注意:       在做上述之前,我已经用账户进入了nt中.故不存在权限问题.  
  问题点数:100、回复次数:12Top

1 楼webber84(***闭关修炼中***)回复于 2003-04-03 17:50:42 得分 10

看看strLine返回的串是否正确啊?Top

2 楼awnucel(西大耻犹未雪,南京恨何时灭&抵制日货)回复于 2003-04-03 17:58:06 得分 0

strline里所读的路径中的“\”应该是单的,你进行一下判断,遇到一个“\”就再加一个Top

3 楼KcSoft(猎鹰魔法)回复于 2003-04-03 18:01:59 得分 0

应该是   filegetdata.ReadString(strLine);  
  strLine出了问题。  
  Top

4 楼wuxq(好好)回复于 2003-04-03 18:08:25 得分 15

aa.txt中应为  
  \\nt02\我的数据\2003.txtTop

5 楼xiaoshao_0_0(xiaoshao)回复于 2003-04-03 18:21:00 得分 0

upTop

6 楼maoxianwang(傻蛋)回复于 2003-04-03 18:21:57 得分 0

因为\\nt02\我的数据\2003.txt  
   
   
  所以\\\\nt02\\我的数据\\2003.txtTop

7 楼qhluo02(小黑炭)回复于 2003-04-03 18:22:58 得分 0

文件名有两个‘\’  
  当然要使用“\\\\”Top

8 楼JustSoSoAtCn(农民)回复于 2003-04-03 18:23:17 得分 15

同意:   wuxq(好好)   的说法。  
  把'\\'替成'\'只是vc的编辑器,当不是在程序中写名的时候是不要这样做的。  
  我认为你调试的时候得到strLine应当是“\\\\nt02\\我的数据\\2003.txt”,  
  但是如果你直接用   strLine="\\\\nt02\\我的数据\\2003.txt"副值,调式的时候  
  得到的应当就是'\\nt02\我的数据\2003.txt'了。  
   
  Top

9 楼fang_jb(寂寞如雪)回复于 2003-04-03 18:25:50 得分 15

楼主需要补习一下了Top

10 楼coyer(test)回复于 2003-04-04 09:31:06 得分 15

你的这个问题应该是路径问题。  
  打开文件的时候,  
  if(!filegetdata.Open("aa.txt",   CFile::modeRead))    
  这条语句应该的执行路径应该是\\\\nt02\\我的数据\\才能确保打开,可是我无法看到你是否把当前路径设置成该路经了,所以,打开文件会说找不到文件.  
  我还确认一点,那就是你上面这条语句的写法,默认路径应该是你的可执行程序的路径,而你读的文件在网络上,所以出错,所以,当你把文件的全路经写上,所以,肯定不会有问题.  
   
  建议整理好路经.试一下"\\aa.txt",如果不行,请定一个路径变量:  
  CString   strPath="\\\\nt02\\我的数据\\";  
  if(!filegetdata.Open(strPath+"aa.txt",   CFile::modeRead))Top

11 楼9712210(9712210)回复于 2003-04-04 09:41:22 得分 15

aa.txt中的路径名应为\\nt02\我的数据\2003.txt.  
  vc中写字符串的时候为了好区分才使用'\'作为转义字符Top

12 楼azhuguang(阿朱)回复于 2003-04-04 10:09:27 得分 15

不知道可不可以这样试一下,将\\\\nt02\\我的数据\\2003.txt改成\\\\\\\\nt02\\\\我的数据\\\\2003.txt,瞎说的,希望不要生气,呵呵!Top

相关问题

  • 简单问题,无穷困扰
  • 困扰菜鸟简单问题
  • 简单的问题,很困扰我。
  • 简单问题-全局变量困扰
  • 简简单单 40分送给你
  • 这个简单的问题 ,困扰我很长时间
  • 一个简单问题!但困扰我很久!
  • 一个简单,但困扰了我很久……
  • 简单问题,能解决本人很多困扰!
  • 一个简单但却困扰我的问题

关键词

  • 数据
  • 文件
  • nt
  • filegetdata
  • strline
  • 路径
  • filedest
  • moderead
  • nt02
  • txt

得分解答快速导航

  • 帖主:dxhdxh2k
  • webber84
  • wuxq
  • JustSoSoAtCn
  • fang_jb
  • coyer
  • 9712210
  • azhuguang

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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