




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第16章文件及多語言程序開發文件系統的查找、讀寫、復制及移動等操作在程序設計中出現非常頻繁,而操作系統和數據庫管理系統等系統性軟件需要同時支持多種字符集。本章主要講解了文件系統、與文件相關的操作以及多語言程序的開發方法。文件系統中講解了FAT32文件系統和NTFS文件系統以及NTFS文件系統中的文件壓縮和文件加密的實現。另外,也介紹了如何通過多字符集結構、常量和函數編寫多語言程序。16.1文件系統概述文件系統是指計算機中管理文件和數據的軟件系統。文件系統會將常用的文件管理操作,如壓縮和加密功能集成到文件系統中。Win32應用程序支持NTFS文件系統和FAT文件系統。本節介紹NTFS和FAT文件系統,以及這兩種文件系統中的文件壓縮和文件加密的實現。16.1.1FAT32文件系統和NTFS文件系統在應用程序中會遇到需要連接的不同卷可能是不同的文件系統,這時理解各個文件系統的不同,使程序可以工作在所有的文件系統中是程序兼容性很重要的一項工作。通常情況下應該在訪問指定卷的文件和文件夾前,調用GetVolumeInformation()函數確定文件系統,并根據返回值的不同,做相應的處理。Windows支持FAT32文件系統和NTFS文件系統。16.1.2文件壓縮Windows支持在NTFS卷中壓縮單個文件。Windows中通過壓縮屬性和壓縮狀態實現與壓縮相關的操作。16.1.3文件加密NTFS卷通過加密文件系統支持文件加密保護。文件加密系統提供使用系統公共鍵加密單個文件。需要注意的是,加密文件不能再進行壓縮,因為加密文件是已經壓縮的文件,并且是使用加密算法壓縮的文件。通過GetVolumeInformation()函數使用FILE_SUPPORTS_ENCRYPTION標記可以確定文件系統是否支持文件和文件夾加密。使用EncryptFile()函數可以加密文件。文件中的所有數據流都會被加密。16.2文件操作在前面章節中介紹過MFC的文件類庫以及C++標準庫中文件的操作。在本節中將介紹在Windows操作系統中如何實現文件更多的操作。主要包括如何使用臨時文件、復制和移動文件、鎖定和解鎖文件、查找文件以及監控文件夾的內容變化。16.2.1生成臨時文件名在程序中有時需要操作臨時文件,當使用完成后退出,這時需要獲取系統唯一的臨時文件名。Windows中提供了GetTempFileName()獲取臨時文件名,GetTempPath()函數獲取臨時文件存放的路徑。獲取了臨時文件后使用臨時文件的步驟和方法與使用普通的臨時文件方法相同。16.2.2復制和移動文件通過程序可以實現文件的復制和移動。復制文件前,必須首先關閉文件,或者只能以只讀的方式打開文件,并且沒有其他線程以可寫的方式打開文件。Windows中提供了CopyFile()函數復制已經存在的文件。通過函數可以指定當目標文件存在時,CopyFile()函數是否返回失敗。CopyFile()函數也可以允許程序指定回調函數的地址,當文件的其他部分被拷貝時通知程序。程序可以通過回調函數返回的拷貝的字節數來計算拷貝的進度。16.2.3鎖定和解鎖文件雖然操作系統個允許多個程序同時打開文件向文件中寫入內容。但是,程序應該保證多個進程同時寫時,不會覆蓋掉其他進程寫入文件的內容。程序可以通過鎖定文件指定范圍的方法來避免這個問題。Windows中提供了LockFile()函數鎖定文件指定位置處的數據,這個范圍可能超過文件尾。鎖定指定范圍的數據后,其他任何進程都不能讀寫此范圍的數據。16.2.4查找文件Windows程序中提供了一組函數可以在當前目錄中查找所有匹配的文件。這組函數包括FindFirstFile()、FindNextFile()和FindClose()函數。FindNextFile()函數使用FindFirstFile()函數返回的句柄查找其他符合條件的文件。16.2.5監視文件夾應用程序可以監控文件夾和其子文件夾內容的變化。Windows中提供了FindFirstChangeNotification()函數、FindNextChangeNotification()函數和FindCloseChangeNotification()函數來實現文件夾的監控。等待通知函數是個阻塞函數,只有當文件夾內容發生變化時,函數才會返回。例如,程序可以通過使用這些函數實時地更新文件夾中的內容。16.3使用多字符集世界上各個國家的語言不同,在計算機上的表示方法也不同。從總體上來說,有的語言可以使用單字符集來表示,而有的語言使用單字符無法表示,必須使用多字符集來表示。例如,中文就必須使用多字符集來表示。本節將介紹有關多字符集的編程知識。主要包括VC中有關多字符集使用的結構、多字符集中的常量宏、多字符集函數、多字符集中通用的數據類型以及如何實現多語言資源的方法。16.3.1多字符集結構Windows通過Unicode和傳統字符集提供了編寫支持多種語言程序的功能。Unicode是在計算機中使用統一字符編碼表示全球字符編碼的標準,包括各種語言字符、技術符號和特殊符號等。16.3.2多字符集宏在多字符集編程中,最常用的功能是將程序中的字符串轉換為Unicode編碼的字符串。因此,Windows中提供了TEXT宏來簡化字符串的字符集轉換。16.3.3多字符集函數Windows中提供了一組函數支持Unicode多字符集編程。這組函數實現的功能包括獲取文本的字符集、獲取文本字符集信息、判斷字符串是否以雙字符集字符開頭、判斷字符串是否Unicode編碼、轉換字符集、將字符串轉換為寬字符串、將寬字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班端午教學活動方案
- 師生慰問活動方案
- 小貓過生日半日活動方案
- 工會活動氣排球活動方案
- 工地禁煙活動方案
- 小班茶活動方案
- 工程項目質量日活動方案
- 崇明區員工聚會活動方案
- 常發公司年會活動方案
- 師傅鍛煉活動方案
- 壯族文化宣傳介飲食服飾建筑風俗習慣特點傳統節日課件
- 牛津譯林版英語八年級下冊期末復習各單元話題寫作范文背誦
- 2024CSCO胃腸間質瘤診療指南解讀
- FZ∕T 61002-2019 化纖仿毛毛毯
- GB/T 3880.3-2024一般工業用鋁及鋁合金板、帶材第3部分:尺寸偏差
- 預激綜合征的護理
- 臨床試驗受試者補償標準
- (正式版)SHT 3225-2024 石油化工安全儀表系統安全完整性等級設計規范
- 高中語文《望海潮》《揚州慢》聯讀+課件+統編版高中語文選擇性必修下冊
- 中考教學工作總結7篇
- 貓咪洗護免責協議書
評論
0/150
提交評論