基于vs8的智能设备工程中使用CFile类打开文件

ktls   2009-9-21 20:01 楼主
请问各位大侠,我在基于vs8的智能设备工程中使用CFile类打开文件时,发现打开不了文件,代码如下:
CFile file ;
CFileException ex;
BOOL bBool = file.Open( _T("123.txt"), CFile::modeRead, &ex);

if ( bBool == 0 )
{
        TCHAR szError[1024];
        ex.GetErrorMessage(szError, 1024);
        cout << "Couldn't open source file: ";
        cout << szError;

}
file.Close() ;

调试时,出现异常,提示无效路径,我的这个文件在工程的几乎所有位置都放了,并且我也尝试用绝对路径放进入还是不行。
另外我用FILE也试过了,仍然解决不了问题,文件始终打不开。
请问在智能设备工程下应该用什么方法操作文件呢?感谢各位了

回复评论 (8)

改成“\\storage card\\123.txt” 程序仍提示如下:"\storage card\123.txt contains an invalid path.",我的123.txt应放在哪呢,请各位指明前方道路,呵呵
点赞  2009-9-21 21:14
谢谢各位,终于搞出来了,需要设置模拟器的共享文件目录为我工程所在目录,然后用\\storage card\\123.txt就OK了
点赞  2009-9-21 21:30
CE下,没有当前目录的概念
执行程序不会去查找它所在的目录,所以必须使用全路径
点赞  2009-9-21 21:31
\\storage card\\123.txt
可以不可以
点赞  2009-9-21 20:06
你的程序在什么地方运行?

模拟器?还是开发板?
点赞  2009-9-21 20:20
谢谢各位热情帮助,我程序是在机子上的,还想请问下 模拟器和开发版是啥意思,呵呵,初学WINCE开发,我的是在机子上安装了WM 5.0,然后用这个模拟器启动的手机,不知道是不是叫模拟器上开发的呢?
点赞  2009-9-21 21:08
引用: 引用 1 楼 trueman_onlyme 的回复:
\\storage card\\123.txt
可以不可以

如1楼说的,在板上运行要把程序和123.txt文件一起拷进去,程序应该没问题,123.txt放错位置了
点赞  2009-9-21 20:31

  1. //取程序运行路径
  2.         CString strAppName = AfxGetAppName();
  3.         char strPath[MAX_PATH];
  4.         strAppName +=_T(".exe");
  5.         SearchPath( NULL, strAppName, NULL, MAX_PATH, strPath, NULL);
  6.         CString strWorkDir = strPath;
  7.         strAppName = _T("\")+strAppName;
  8.         int nStart = strWorkDir.Find( strAppName);
  9.         strWorkDir = strWorkDir.Left( nStart);
点赞  2009-11-6 00:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复