程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> CFile類打開文件的有趣現象

CFile類打開文件的有趣現象

編輯:關於VC++

在編制對話框應用程序的過程中,我發現一個很有趣的現象,就是當使用CFile類的Open成員函數打開一個文件時,如果不指定文件的路徑會默認為當前程序的路徑,但如果使用了文件打開對話框CFileDialog類並打開了一個文件的話,則Open成員函數文件的默認路徑會變成CFileDialog類打開文件的路徑。下面詳細說明如下:

CFile::Open

virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException* pError=NULL);

返回值:若打開成功,則返回非0值;否則返回0。僅當返回0時pError參數才有意義。

參數:lpszFileName 一個字符串,指定所需文件的路徑。

nOpenFlag 一個UINT值,定義文件的共享和存取方式。

pError 標識指向一個已有的文件異常對象的指針,該對象指示打開操作的完成狀態。

說明:Open函數是為了配合缺省的CFile構造函數使用而設計的。

我使用如下的代碼來獲得當前打開文件的默認路徑:

CString strCurrentPath,strMsg;
GetCurrentDirectory(200,strCurrentPath.GetBuffer(200));
strCurrentPath.ReleaseBuffer();
strMsg=_T("當前文件打開路徑為:\n")+strCurrentPath;
MessageBox(strMsg);

當我沒有使用文件打開對話框時獲得的路徑情形如下:

當我使用了文件打開對話框打開C:\Program Files\desktop.ini時獲得的路徑情形如下:

如果你在程序編制過程中在使用了文件打開對話框CFileDialog以後又想使用CFile::Open打開程序所在路徑的文件,就只有在使用文件打開對話框CFileDialog之前使用Windows API函數GetCurrentDirectory()獲得路徑並使用變量保存下來。

以上是作者編程過程的一點小體會,贻笑大方了,請讀者多加指教。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved