handle handle;
win32_find_data find_data;
handle = :: findfirstfile("d:\vss",&find_data);
findclose(handle);
find_data.dwfileattributes = find_data.dwfileattributes|file_attribute_readonly;
::setfileattributes("d:\vss",find_data.dwfileattributes);
在上面的介紹中,除了可以設定檔案的屬性之外,在操作的過程當中也可以取得檔案的其他一些資訊,可以根據具體的需要來實現。
5.獲取檔名,檔案型別,檔案長度,檔案路徑
用利用cfile開啟乙個檔案時,可以在利用成員函式
virtual cstring getfilename( ) const,
virtual cstring getfiletitle( ) const,
virtual cstring getfilepath( ) const,
virtual dword getlength( ) const;throw( cfileexception );
來取得相關資訊,如果乙個檔案的全路經是: c:\windows\write\myfile.wri,則每個函式取得的是: myfile.wri, myfile, c:\windows\write\myfile.wri. getlength取得檔案大小是按位元組為單位的。
也可以利用:
virtual void setlength( dword dwnewlen );throw( cfileexception );
virtual void setfilepath( lpctstr lpsznewname );
來設定檔案的長度和路徑。
在當前的檔案下面新建乙個text.txt檔案,在裡面寫點東西,然後執行下面程式:
cfile file("text.txt",cfile::modereadwrite);
ulonglong length;
cstring strfilepath;
length = file.getlength();
length = length + 1024*10;
file.setlength(length);
file.setfilepath("d:\text.txt");
strfilepath = file.getfilepath();
messagebox(strfilepath);
file.close();
最後發現檔案的路徑變了,但是在d盤下面並沒有找到text.txt,原因是setfilepath只能指定乙個路徑給檔案,setfilepath並不能做為移動檔案來使用。
cfile並沒有給出取得檔案型別的函式,有了上面基礎,這個很容易實現。
api函式中也有獲得檔案路徑的操作,這裡只是做簡單介紹,可以參照msdnn的說明:getfilesize可以獲得檔案的大小,getfullpathname 函式獲取檔案的完整路徑名,只有當該檔案在當前目錄下,結果才正確。getmodulefilename函式獲取檔案的完整路徑名,這些函式有些用到檔案控制代碼的。
用cfiledialog開啟的檔案,可以使用它的成員變數m_ofn,或者成員函式getfilename, getfiletitle, getfilepath, getfileext來取得相關資訊.
cfiledialog( bool bopenfiledialog, lpctstr lpszdefext = null, lpctstr lpszfilename = null, dword dwflags = ofn_hidereadonly | ofn_overwriteprompt, lpctstr lpszfilter = null, cwnd* pparentwnd = null );
各個引數如下:
·bopenfiledialog 為true為開啟對話方塊,為false為儲存對話檔案對話方塊
·lpszdefext 指定預設的副檔名。
·lpszfilename 指定預設的檔名。
·dwflags 指明一些特定風格。
·lpszfilter它指明可供選擇的檔案型別和相應的副檔名。引數格式如:
"chart files (*.xlc)|*.xlc|worksheet files (*.xls)|*.xls|data files (*.xlc;*.xls)|*.xlc; *.xls|all files (*.*)|*.*||";檔案型別說明和副檔名間用 | 分隔,同種型別檔案的副檔名間可以用 ; 分割,每種檔案型別間用 | 分隔,末尾用 || 指明。
pparentwnd 為父視窗指標
cstring filefilter = "所有檔案(*.*)|*.*||";
cfiledialog filedialog(true,null,null,ofn_hidereadonly,filefilter,null);
filedialog.domodal();
messagebox(filedialog.getfilename());
解讀C 程式設計的相關檔案操作
c 檔案的概念 迄今為止,我們討論的輸入輸出是以系統指定的標準裝置 輸入裝置為鍵盤,輸出裝置為顯示器 為物件的。在實際應用中,常以磁碟檔案作為物件。即從磁碟檔案讀取資料,將資料輸出到磁碟檔案。磁碟是計算機的外部儲存器,它能夠長期保留資訊,能讀能寫,可以重新整理重寫,方便攜帶,因而得到廣泛使用。檔案 ...
VC中的檔案操作 CFILE
各種關於檔案的操作在程式設計中是十分常見,如果能對其各種操作都瞭如指掌,就可以根據實際情況找到最佳的解決方案,從而在較短的時間內編寫出高效的 因而熟練的掌握檔案操作是十分重要的。本文將對visual c 中有關檔案操作進行全面的介紹,並對在檔案操作中經常遇到的一些疑難問題進行詳細的分析。1 檔案的查...
剖析VC中的檔案操作
剖析vc中的檔案操作 2002 8 4 17 33 29 燕山大學 聶棟棟 閱讀次數 18539 各種關於檔案的操作在程式設計中十分常見,如果能對這些操作都瞭如指掌,就可以根據實際情況找到最佳的解決方案,從而可以在較短的時間內編寫出高效的 本文對visual c 中有關檔案操作進行了全面的介紹,並對...