C#文件IO操作

来源:互联网 发布:怎样经营好淘宝网店 编辑:程序博客网 时间:2024/04/30 18:45

一、文件系統概述
   
计算机系统的重要作用之一是能快速处理大量信息,因此数据的组织和存取成为一个极为重要的内容。文件是信息的一种组织形式,而文件系统的的目标就是提高存储器的利用率,接受用户的委托实施对文件的操作。
     
文件系统是操作系统的一个重要组成部分。文件系统所要解决的问题包括:管理存储设置,决定文件的存放位置和方式,提供共享能力,保证文件安全性,提供友好的用户接口。通过文件系统,用户和应用程序能方便地进行数据存储,而不必关心底层存储设备的实现。
     Windows
支持多种文件系统,如FAT,FAT32,NTFS等。这些文件系统在操作系统内部有不同的实现方式,然而它们提供给用户的接口是一致的。如果应用程序不涉及到操作系统的具体特性,那么只要按照标准式来编写代码,生成的应用程序就可以运行在各个文件系统上,甚至还可以不经改动移植到其他操作系统(比如UnixLinux)上.NET框架中的IO处理部分就封装了文件系统的实现细节,提供给开发人员一个标准化的接口。
     Windows
操作系统对文件系统采用多级目录结构,并且提供了一组命令用于文件和目录管理。可以使用.NET提供的标准方法进行目录管理、文件控制和文件存取等工作,程序代友编译执行时,.NET框架会自动调用相关的系统命令。
     C
#将文件视为一个字节序列,以流的方式对文件进行操作。流是字节序列的制作概念,文件、输入/输出设计、内部时行程序管道以及TCP/IP套接字等都可以视为一个流。.NET对流的概念进行了抽象,为这些不同类型的输入和输出提供了统一的视图,使程序员不必去了解操作系统和基础设备的具体细节。
二、目录和文件
1.
相关枚举类型
a) FileAccess,
该枚举类型表示文件的访问权限,可以为以下值。
i. Read---
对文件拥有读权限
ii. ReadWrite---
对文件拥有的读写权限
iii. Write---
对文件拥有写权限
b) FileAttributes
,该枚举类型表示文件的类型
i. Archive---
存档文件
ii. Compressed---
压缩文件
iii. Device---
设备文件
iv. Directory---
目录
v. Encrypted---
加密文件
vi. Hidden---
隐藏文件
vii. Normal---
普通文件
viii. NOtContentIndexd---
无索引文件
ix. Offline---
脱机文件
x. ReadOnly---
只读文件
xi. ReparsePoint---
重分析文件
xii. SparseFile---
稀疏文件
xiii. System---
系统文件
xiv. Temporary---
临时文件
枚举值可以按位进行组合使用,比如FileAttributes.System|FileAttributes.ReadOnly表示系统只读文件。当然,一些相互排斥的类型是不能进行组合的,比如一个文件不能既是普通文件,又是隐藏文件。
c) FileMode,
该枚举类型表示文件的打开方式,可以为以下值:
i. Append---
以追加的方式打开文件,如果文件存在则移动到文件末尾,否则创建一个新文件。
ii. Create---
创建并打开一个文件,如果文件已经存在则覆盖旧文件。
iii. Open---
打开现有文件,如果文件不存在发生异常。
iv. OpenOrCreate---
打开或新建一个文件,如果文件存在则打开它,否则创建并打开一个新文件。
v. Truncate---
打开现有文件,并清空文件内容。
d) FileShare
,该枚举类型表示文件共享方式,可以为以下值。
i. None---
禁止任何形式的共享。
ii. Read---
读共享,打开文件后允许其它进程对文件进行读写操作。
iii. ReadWrite---
读写共享,打开文件后允许其它进程对文件进行读和写操作。
iv. Write---
写共享,打开文件后允许其它进程对文件进行写操作。
e) SeekOrigin
,该枚举类型表示文件的偏移以什么为准,可以为以下值:
i. Begin---
从文件起始位置计。
ii. Current---
从文件流的当前位置计。
iii. End---
从文件流的末尾位置计。
f) NotifyFilters
,该枚举类型用于指定对文件或目录哪些属性的修改进行监视,可以为以下值:
i. Attributes---
对属性的变化进行监视。
ii. CreationTime---
对创建时间的变化进行监视。
iii. DirectoryName---
对目录名称的变化进行监视。
iv. FileName---
对文件名称的变化进行监视。
v. LastAccess---
对最后一次访问时间的变化进行监视。
vi. LastWrite---
对最后一次时间的变化进行监视。
vii. Security---
对安全设置的变化进行监视。
viii. Size---
对大小的变化进行监视。
2.
目录
使用Directory类提供的目录管理功能,不仅可以创建、移动和删除目录,还可以获取和设置目录的相关信息。
Directory
提供的静态方法有:
Ø Public static DirectoryInfo CreateDirectory(string)
---给定路径名,创建目录,并返回目录信息。
Ø Public static void Delete(string)
---给定路径名,删除目录。
Ø Public static void bool Exists(string)----
给定路径名,判断目录是否存在。
Ø Public static DateTime GetCreationTime(string)----
给定路径名,获取目录创建的日期和时间。
Ø Public static string GetCurrentDirectory()---
获取应用程序的当前工作目录。
Ø Public static string[] GetDirectory(string)---
给定路径名,获取目录中的子目录列表。
Ø Public static string GetDirectoryRoot(string)---
给定路径名,获取目录的卷信息或要信息。
Ø Public static string[] GetFile(string)---
给定路径名,获取目录中的文件列表。
Ø Public static string[] GetFileSystemEntries(string)---
给定路径名,获取目录中的子目录和文件列表。
Ø Public static DateTime GetLastAccessTime(string)---
给定路径名,获取文件最近一次访问的日期和时间。
Ø Public static DateTime GetlastWriteTime(string)---
给定路径名,获得目录最近一次修改的日期和时间。
Ø Public static string[] GetLogicalDrivers()---
获得计算机上的逻辑驱动器列表。
Ø Public static DirectoryInfo GetParent(string)---
给定路径名,获取目录上层目录的信息。
Ø Public static void Move(string,string)---
给定源路径名和目标路径名,移动目录。
Ø Public static void SetCreationTime(string,DateTime)---
给定路径名,设置目录创建的日期和时间。
Ø Public static void SetCreationDirectory(string)---
给定路径名,将目录设置为应用程序的当前工作目录。
Ø Public static void SetLastAccessTime(string,DateTime)---
给定路径名,设置目录最近一次被访问的日期和时间。
Ø Public static void SetLastWriteTime(string,DateTime)---
给定路径名,设置目录最近一次被修改的日期和时间。

3. 文件
a)
文件基本操作
Ø Public static FileStream Create(string)---
给定文件路径名,创建文件,并返回一个FileStream流对象。
Ø Public static StreamWriter CreateText(string)---
给定文件路径名,以文本的方式创建文件,并返回一个StreamWriter流对象。
Ø Public static void Copy(string,string)---
给定源路径名和目录路径名,考贝文件。
Ø Public static void Move(string,string)---
给定源路径名和目录路径名,移支文件。
Ø Public static void Delete(string)---
给定源路径名和目录路径名,删除文件。
Ø Public static void Exists(string)---
给定源路径名和目录路径名,判断文件是否存在。

b)获取和设置文件信息
Ø Public static FileAttributes GetAttributes(string)------
给定源路径名,获取文件的属性集。
Ø Public static DateTime GetCreationTime(string)---
给定文件路径名,获取文件创建宾日期和时间。
Ø Public static DateTime GetLastAccessTime(string)---
给定文件路径名,获得文件最近一次被访问的日期和时间。
Ø Public static DateTime GetLastWriteTime(string)---
给定文件路径名,获得文件最近一次被修改的日期和时间。
Ø Public static void SetAttributes(string,FileAttributes)---
给定文件路径名,设置文件属性集。
Ø Public static void SetCreationTime(string,DateTime)---
给定文件路径名,设置文件创建的日期和时间。
Ø Public static void SetLastAccessTime(string,DateTime)----
给定文件路径名,设置文件最近一次被访问的日期和时间。
Ø Public static void SetLastWriteTime(string,DateTime)---
给定文件路径名,设置文件最后一次被修改的日期和时间。

c)打开文件,并将文件与流对象相关联
Ø Public static FileStream Open(string,FileMode)---
给定文件路径名,按指定的方式打开文件,并返回一个FileStream流对象。
Ø Public static FileStream OpenRead(string)---
给定文件路径名,以只读方式打开文件,并返回一个FileStream流对象。
Ø Public static FileStream OpenWrite(string)---
给定文件路径名,打开文件进行读写操作,并返回一个FileStream流对象。
Ø Public static StreamReader OpenText(string)---
给定文件路径名,以文本方式打开文件并返回一个FileStream流对象。
Ø Public static StreamWriter AppendText(string)---
给定文件路径名,以文本方式打开文件进行写操作,并返回一个StreamWriter流对象。

 

原创粉丝点击