这个简单的问题困扰了我很久了, 100分送给真心解决者!
我想读一个文件:
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




