博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读书笔记之文件和注册表操作
阅读量:5093 次
发布时间:2019-06-13

本文共 4977 字,大约阅读时间需要 16 分钟。

    在windows桌面应用程序中,经常会操作目录和文件,例如,删除目录,删除文件,写入文件和新建文件等操作,有时在对文件或目录进行操作时,还会操作注册表的相关信息,这些操作在Visual c# 中可以很方便的实现文件的存储管理,对文件的读写等各种操作。

一.管理文件系统

      管理文件系统主要是对计算机中文件和目录的管理,例如,读取问件信息、删除文件和读取目录信息等。这些功能主要有System..IO命名空间下的类对文件和目录进行操作。System..IO命名空间为目录和文件的操作提供了必要的类,方法和属性。

      在System..IO命名空间中提供了Directory类和Directorylnfo类来进行目录管理,可以完成对目录及其子目录的创建、移动、浏览等操作。Directory类的所有方法都是静态的,因此无需实例化对象即可调用,这些方法可以操纵和查询任何目录的信息。Directorylnfo类是需要实例化成员才可以调用其方法的,Directorylnfo类实例化后,就可以获取目录的创建时间和最后修改时间等状态。

Directory类和Directorylnfo类的一些方法和属性:

  1. Exists方法:该方法接受一个参数,该参数表示包含当前目录路径的字符串。Exists方法返回结果指示目录是否存在,如果存在则返回true,否则返回false。

 

 

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); } private void button3_Click(object sender, EventArgs e) {
string stringPath = "c:\\TestDirectory"; if (Directory.Exists(stringPath)) {
label3.Text = "该目录存在,请继续操作"; } else {
label3.Text = "该目录不存在,请检查路径是否正确"; } } } }

 

 

 CreatDirectory方法:此方法接受一个创建目录路径的String类型参数,该方法会根据此路径创建新目录。并且该方法返回一个DirectoryInfo实例,如果创建的目录已经存在,则返回代表指定目录的类实例,不会创建目录,也不会产生异常。下面实例演示如何创建目录:

If(!Directory.Exists(“C:\\TestDircetory”))

{

   Directory.CreateDirectory(“C:\\TestDirectory”)

}

DirectoryInfo类的Attibutes属性和其他属性

DirectoryInfo类的Attibutes属性可以获取或设置当前目录的相关属性,该实例使用Attibutes属性设置并获取C:\TeatDirectory目录的相关属性:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsApplication3 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {
String stringPath="c:\\TestDirectory"; if(Directory.Exists(stringPath)) {
DirectoryInfo info = new DirectoryInfo(stringPath); info.Attributes = FileAttributes.Hidden; label3.Text += "目录创建时间:" + info.CreationTime.ToString() + "\n"; label3.Text += "全部名称:" + info.FullName + "\n"; label3.Text += "最后一次访问该目录时间:" + info.LastAccessTime.ToString() + "\n"; label3.Text += "最后一次修改目录时间:" + info.LastWriteTime.ToString() + "\n"; label3.Text += " DirectoryInfo实例名称:" + info.Name + "\n"; label3.Text += " 父目录::" + info.Parent + "\n"; label3.Text += " 路径根部分:" + info.Root.ToString(); } else {
label3.Text="该目录不存在,请检查路径是否正确"; } } } }

 

运行结果:

 

  1. Delete方法:

Directory类的Delete方法可删除指定的目录,fai方法为一个重载方法,可以接受一个参数或者两个参数。

  1. Move方法:

Move方法表示将指定文件移到新位置,并提供新文件名的选项。

  1. GetFiles方法:

GetFiles方法可以返回该目录岁包含的所有文件的文件名,不能返回其子目录文件名。

  1. DetDirectories方法

二.File类和FileInfo类

     System.IO命名空间的File类和FilInfo类提供有关系统操作的相关内容,例如创建,删除,移动和打开文件等。File类的操作方式和Diretory类相似,File类中的方法大多都为静态方法,而FileInfo类与DiretoryInfo类相似,只有在实例化的情况下才可以使用其属性和方法。

File,其常用方法包括:

  Create()方法:用于新建一个文件 。

  打开文件,包括:Open、OpenRead、OpenText 等

  Copy()方法:用于复制一个文件

  Delete()方法:用于删除一个文件

  Move()方法:用于移动一个文件

三.Path类

Path类对包含文件或目录路径信息的String实例执行操作,并且以跨平台的方式执行这些操作。

四.读写文件

StreamReader类:

StreamReader类的常用方法包括Read方法和ReadLine方法。

Read方法

Read方法用于读取输入流中的下一个字符,并使当前流的位置提升一个字符。其方法原型为:

public override int Read();

ReadLine方法

ReadLine方法从当前流中读取一行字符并将数据作为字符串返回。其方法原型为:

public override string ReadLine();

StreamReader类的常用方法包括Write方法和WriteLine方法。

write方法

可用于将字符、字符数组、字符串等写入流

WriteLine方法

WriteLine方法用于将后跟行结束符的字符、字符数组、字符串等写入文本流。

五.注册表概述

     注册表即是在Windows中用于存储有关计算机配置信息的数据库。注册表中包含了关于计算机运行方式的配置信息,其中包括Windows操作系统配置信息、应用程序配置信息、专用用户设备配置信息、环境配置信息等。

Microsoft提供给用户一个用于编辑注册表的工具Regedit,它具有对注册表进行操作的强大功能。 

注册表是一个庞大的数据库,其中的每一主键,每一键值都赋予了不同的功能。

1.Registry类

    Registry类用于提供访问注册表中的值和子键的基Registrykeys。该类中封装了7个公有的静态域,分别代表Windows注册表中的7个基本主键,具体如下所示:

    (1) ClassesRoot

该域用于读取Windows注册表中的基本主键HKEY_CLASSES_ROOT。定义文档的类型(或类)以及与那些类型关联的属性。

    (2) CurrentConfig:该域用于读取Windows注册表中的基本主键HKEY_CURRENT_CONFIG,其中包含有关非用户特定的硬件配置信息。

    (3) CurrentUser:该域用于读取Windows注册表中的基本主键HKEY_CURRENT_USER,其中包含有关当前用户首选项的信息。

    (4) DynData:该域用于读取Windows注册表中的基本主键HKEY_DYN_DATA,其中包含动态注册表数据。

    (5) LocalMachine:该域用于读取Windows注册表中的基本主键HKEY_LOCAL_MACHINE,其中包含本地计算机的配置数据。

    (6) PerformanceData:该域用于读取Windows注册表中的基本主键HKEY_PERFORMANCE_DATA,其中包含软件组件的性能信息。

    (7) Users:该域用于读取Windows注册表中的基本主键HKEY_USERS,其中包含有关默认用户的配置信息。

2.RegistryKey类

RegistryKey类表示Windows注册表中的子键。该类中封装了对Windows系统注册表的基本操作,包括对注册表信息的读取、删除、修改和重命名等,RegistryKey类中的一些常用方法有:

    (1) CreateSubKey方法

    (2) SetValue方法

    (3) OpenSubKey方法

    (4) OpenRemoteBaseKey方法

    (5) DeleteSubKey方法

    (6) DeleteSubKeyTree方法 

    (7) DeleteValue方法

    (8) GetValue方法

 

转载于:https://www.cnblogs.com/qianyang/archive/2012/02/16/2353779.html

你可能感兴趣的文章
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
查询消除重复行
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
Json格式的字符串转换为正常显示的日期格式
查看>>
[转]Android xxx is not translated in yyy, zzz 的解决方法
查看>>
Mobiscroll脚本破解,去除Trial和注册时间限制【转】
查看>>
iframe父子页面通信
查看>>
map基本用法
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
java类加载和对象初始化
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>