本文是學習筆記,C#進階編程第六版25章 檔案和註冊表操作
一, 管理檔案系統
1,File directory 是靜態類,如果只是調用一個檔案或檔案夾的一次操作,可以使用這些類。
FIleInfo DirectoryInfo是密封類,需要執行個體化,所以如果多次操作某個檔案可以使用這些類。
2,FileInfo 可以執行Open(),OpenRead(),OpenText(),OpenWrite(),Create(),CraetText()方法,他們返迴流對象。
3,path類是一個靜態類,不能執行個體化。
4,file和directory的方法:MoveTo() Delete() CopyTo()
二,讀寫檔案
1,方法的羅列:
File.ReadAllText(FilePaht)
File.ReadAll(FillPath,Encoding)
File.ReadAllBytes()
File.WriteAll(FilePath,content)
File.WriteAll(FilePath,content,Endcoding)
File.WriteAllBytes()
三,流
1,流的資料來源可以是檔案,可以是網路,可以是管道,可以使記憶體。其中System.IO.MemoryStream 和System.IO.Sockets.NetwordkStream來分別處理記憶體和網路的讀寫。
2,對於檔案的讀寫,最常用的類是兩個 FileSteam和StreamReader與SteamWriter
3,如果要讀寫緩衝的流,則需要寫一個繼承自BufferSteam的類
4,讀寫二進位檔案首先要執行個體化FileSteam,兩種方法,一種是new,另一種是使用 FileSteam fs = file.OpenRead()或file.OpenWrite()或file.Creat()或file.Open() ,使用完以後要Close().
5,ReadByte()會唯讀出一個byte並變成int。
6,SteamReader和SteamWriter特別適合文字檔的讀寫,這兩個類的方法ReadLine()和WriteLine()
7,streamReader 是將一個檔案讀成這種形式,然後可以使用sr.ReadLine()一行一行的讀,可以使用sr.Read()來讀取一個字元或者用ReadToEnd()將剩餘字串全部讀出。
8,StreamWriter是一個將要寫入的檔案變成這種形式,然後使用sw.Write()來填充,最後close()。
四:讀取磁碟機資訊 使用DriveInfo()
五:檔案的安全性
ACL 存取控制表
六:讀寫註冊表
1.,註冊表簡介:註冊表有7個註冊表巢,使用regedit能看到5個。
HKEY_CLASSES_ROOT(HKCR)包含系統上檔案類型的細節,以及應用程式可以開啟的檔案類型。還包括了所有com組件的註冊資訊。
HKEY_CURRENT_USER(HKCU) 包括使用者目前登陸的機器的使用者配置。包含案頭設定,環境變數,網路和列印串連和其他使用者作業環境的設定。
HKEY_LOCAL_MACHINE(HKLM)是一個很大的巢,包含所有安裝在電腦上的軟體和硬體資訊,這些設定不是使用者特有的,而是可用於登陸到機器上的使用者。它還包含HKCR巢,HKCR實際上不是一個獨立的巢,他只是一個對登錄機碼HKLM/SOFTWARE/Classes的方便映射。
HKEY_USERS(HKUSR)包含所有使用者的使用者配置。它包含HKCU巢,HKCU巢是對HKEY_USERS中一個鍵的映射。
HKEY_CURRENT_CONFIG(HKCF) 包含機器上硬體的資訊。
其餘兩個鍵包含臨時資訊,經常會改動。
HKCY_DYN_DATA是一個一般容器,包含需要儲存在註冊表中的違規資料。
HKEY_PERFORMANCE_DATA 包含與運行應用程式的效能相關的資訊。
2.Registry and RegistryKey.
RegistryKey用的最多可以完成對登錄機碼的所有操作,包含設定鍵的安全層級。
Registry只能對註冊表鍵進行單一的訪問,執行簡單操作。另一個作用是提供頂級鍵的執行個體。
Registry是通過靜態屬性來提供這些執行個體的,這些屬性有7個,分別是ClassesRoot、CurrentConfig、CurrentUser、DynData、LocalMechine、PerformanceData和Users。
forexample:RegistryKey hklm = Registry.LocalMachine;
RegistryKey hkSoftware = hklm.Openkey("Software");
建立key需要使用CreatSubKey()
刪除key需要使用Delete()
擷取和設定屬性使用GetValue()和SetValue()
使用完成後關閉鍵 Close()
七:隔離儲存區 (Isolated Storage)器 IsolatedStorageFile
可以看做是一個虛擬硬碟,其中可以儲存只能由建立 他們的應用程式或與其他應用程式執行個體共用的資料項目。
有兩種訪問方式:一種是由使用者和程式集訪問。它可以由多個應用程式執行個體訪問。另一種是由使用者、程式集和域來訪問。這種訪問時,每個應用程式執行個體都在它自己的隔離儲存區 (Isolated Storage)器中工作。