C# 学习 文件和注册表操作

本文是学习笔记,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()

  七:独立存储器 IsolatedStorageFile

       可以看做是一个虚拟硬盘,其中可以保存只能由创建 他们的应用程序或与其他应用程序实例共享的数据项。

       有两种访问方式:一种是由用户和程序集访问。它可以由多个应用程序实例访问。另一种是由用户、程序集和域来访问。这种访问时,每个应用程序实例都在它自己的独立存储器中工作。

你可能感兴趣的:(注册表)