zoukankan      html  css  js  c++  java
  • 《C#高级编程》读书笔记(十六):文件和注册表操作

    1,Directory类和File类

        只包含静态方法,不能被实例化。只要调用一个成员方法,提供合适文件系统对象的路径,就可以使用这些类。如果只对文件夹或文件执行一个操作,使用这些类就很有效,因为这样可以省去实例化.NET类的系统开销。

                File.Copy(@"C:1.txt",@"D:copy.txt");

    2,DirectoryInfo类和FileInfo类

        这两个类实现与Directory类和File大致相同的公共方法,并拥有一些公共属性和公共函数,但他们都是有状态的,并且这些类的成员都不是静态的。需要实例化这些类,之后把每个实例与特定的文件夹或文件关联起来。如果使用同一个对象执行多个操作,使用这些类就比较有效。

                FileInfo myFile = new FileInfo(@"C:1.txt");
                myFile.CopyTo(@"D:copy.txt");

    3,Path类

        Path类不能被实例化。然而,它提供了一些静态方法,可以更容易地对路径名执行操作。

        比如要显示文件夹C:My Documents中的ReadMe.txt文件的完整路径名,可以使用下述代码查找文件的路径:

                Console.WriteLine(Path.Combine(@"C:My Documents","ReadMe.txt"));

    4,移到、复制和删除文件

         移动和删除文件或文件夹可以使用FileInfo和DirectoryInfo类的MoveTo()和Delete()方法来完成。

         File和Directory类的这两个对应方法时Move()和Delete()。

         FileInfo和File类也分别实现CopyTo()和Copy()方法。

         没有复制完整文件夹的方法,而应复制文件夹中的每个文件。

    5,读写文件

        在.NET Framework 4.5中,可以通过File对象读写文件。

        读取:

    textBox2.Text = File.ReadAllText(textBox1.Text);

        写入:

    File.WriteAllText(textBox1.Text,textBox2.Text);

    6,流

        流是一个用于传输数据的对象,数据可以向两个方向传输:

        1)如果数据从外部源传输到程序中,这就是读取流。

        2)如果数据从程序传输到外部源中,这就是写入流。

        对于文件的读写,最常用的类如下:

        FileStream(文件流)——这个类主要用于在二进制文件中读写二进制数据——也可以使用它读写任何文件。

        StramReader(流读取器)和StreamWriter(流写入器)——这两个类专门用于读写文本文件。

    StreamReader sr = new StreamReader(@"C:My DocumentsReadMe.txt

        把StreamReader关联到FileStream上。其优点是可以指定是否创建文件和共享许可。

                FileStream fs = new FileStream(@"C:My DocumentsReadMe.txt",FileMode.Open,FileAccess.Read,FileShare.None);
                StreamReader sr= new StreamReader(fs);

       从一个FileInfo实例中获得StreamReader:

                FileInfo myFile = new FileInfo(@"C:1.txt");
                StreamReader sr = myFile.OpenText();

       StreamWriter类的工作方式与StreamReader类似,但StreamWriter只能用于写入文件(或另一个流)。

    7,读取驱动器信息

        读取驱动器信息可以使用DriveInfo类实现。该类可以扫描系统,提供可用驱动器的列表,还可以进一步提供任何驱动器的大量细节。

    8,读写注册表

        注册表是包含Windows安装、用户首选项,以及自己安装软件和设备的所有配置信息的核心存储库。

        访问注册表,可以使用MicroSoft.Win32名称空间中的两个类Registry和RegistryKey。RegistryKey实例表示一个注册表键。这个类实现的方法可以浏览子键、创建新键、读取或修改键中的值。换言之,该类通常可以完成对注册表键进行的所有操作。

        Registry类只能对注册表键进行单一的访问,以执行简单的操作。Registry类的另一个作用是提供表示顶级键的RegistryKey示例(不同的配置单元),以便开始在注册表中定位。

        如果要读取HKLM/Software/Microsoft键中的一些数据,就可以使用下面的代码获得它的一个引用:

                RegistryKey hklm = Registry.LocalMachine;
                RegistryKey hkSofeware = hklm.OpenSubKey("Software");
                RegistryKey hkMicrosoft = hkSofeware.OpenSubKey("Microsoft");

        如果要创建一个键,就应使用CreateSubKey()方法(该方法会通过返回的引用,自动提供该键的读写访问):

                RegistryKey hklm = Registry.LocalMachine;
                RegistryKey hkSofeware = hklm.OpenSubKey("Software");
                RegistryKey hkMicrosoft = hkSofeware.CreateSubKey("MyOwnSoftware");

       CreateSubKey()方法的工作方式:如果键不存在,它就创建这个键。如果这个键已经存在,就返回一个表示该键的RegistryKey实例。

  • 相关阅读:
    《WCF全面解析》-上册 1-3章 读书笔记
    git上传本地Intellij idea 项目到码云的git仓库中
    Node.js安装及环境配置之Windows篇
    让IntelliJ IDEA支持创建*.vue文件及打开*.vue文件
    maven命令mvn package指定jar包名称
    spring 时间格式化注解@DateTimeFormat和 @JsonFormat
    事务及事务隔离级别
    @RequestBody的使用
    接口jdk1.8与jdk1.9新特性
    Spring AOP无法拦截内部方法调用-- expose-proxy="true"用法
  • 原文地址:https://www.cnblogs.com/khjian/p/5831603.html
Copyright © 2011-2022 走看看