c#文件操作

1、Path类

path类就是对字符串进行操作,和磁盘没关系

string path = @"C:\My Documents\exercises\ITCAST-102\ipmsg.exe";

名称说明例子结果
ChangeExtension 更改路径字符串的扩展名。 string 改变后缀名 = Path.ChangeExtension(path, ".txt"); C:\My Documents\exercises\ITCAST-102\ipmsg.txt
Combine(String[]) 将字符串数组组合成一个路径。    
Combine(String, String) 组合两个路径字符串。 string 连接两个路径 = Path.Combine(@"c:\abc\xyz\aa", "abc.txt"); c:\abc\xyz\aa\abc.txt
GetDirectoryName 返回指定路径字符串的目录信息。 string 截取路径 = Path.GetDirectoryName(path); C:\My Documents\exercises\ITCAST-102
GetExtension 返回指定的路径字符串的扩展名。 string 只获取文件后缀 = Path.GetExtension(path); .exe
GetFileName 返回指定路径字符串的文件名和扩展名。 string 文件名带后缀 = Path.GetFileName(path); ipmsg.exe
GetFileNameWithoutExtension 返回不具有扩展名的指定路径字符串的文件名。 string 不带后缀文件名 = Path.GetFileNameWithoutExtension(path); ipmsg
GetFullPath 返回指定路径字符串的绝对路径。    
GetInvalidFileNameChars 获取包含不允许在文件名中使用的字符的数组。    
GetInvalidPathChars 获取包含不允许在路径名中使用的字符的数组。    
GetPathRoot 获取指定路径的根目录信息。    
GetRandomFileName 返回随机文件夹名或文件名。    
GetTempFileName 在磁盘上创建一个唯一命名的,零字节临时文件,返回此文件的完整路径。 string 得到临时唯一的文件名 =Path.GetTempFileName(); C:\Users\Administrator\AppData\Local\Temp\tmpDD57.tmp
GetTempPath 返回当前系统临时文件夹的路径。 string 获取系统临时文件夹路径 = Path.GetTempPath();//比如解压文件时,  C:\Users\Administrator\AppData\Local\Temp\
HasExtension 确定路径是否包括文件扩展名。    
IsPathRooted 获取指示指定的路径字符串是否包含根的值。    

2、Directory类

假设:string path = "c:\\a";

名称说明例子结果
CreateDirectory 按照 path 的指定创建所有目录和子目录。 Directory.CreateDirectory(path); c盘根目录多了一个a文件夹
Delete(String) 从指定路径删除空目录。 Directory.Delete(@"c:\a"); //只能删除空目录 将a文件夹删除,里面必须为空
Delete(String, Boolean) 删除指定的目录并(如果指示)删除该目录中的所有子目录和文件。 Directory.Delete(@"c:\a", true);//可以删除整个目录连同子目录和文件 将a文件夹删除,里面可以有内容
Exists 确定给定路径是否引用磁盘上的现有目录。 bool 判断目录是否存在 = Directory.Exists(@"c:\a"); //不会验证文件.只对目录操作  
GetCreationTime 获取目录的创建日期和时间。    
GetCurrentDirectory 获取应用程序的当前工作目录。    
GetDirectories(String) 获取指定目录中的子目录的名称(包括其路径)。 string[] 获取所有子目录 = Directory.GetDirectories(path);  
GetDirectories(String, String) 在当前目录获取与指定搜索模式匹配的目录的数组(包括它们的路径)。 string[] 搜索带条件子目录 = Directory.GetDirectories(path, "*a*", SearchOption.AllDirectories);//指定目录及其所有子目录  
GetDirectoryRoot 返回指定路径的卷信息、根信息或两者同时返回。    
GetFiles(String) 返回指定目录中的文件的名称。 string[] 获取所有子文件 = Directory.GetFiles(path);//获取所有文件  
GetFiles(String, String) 返回指定目录中与指定搜索模式匹配的文件的名称。 string[] 搜索带条件子文件 = Directory.GetFiles(path, "*a*", SearchOption.AllDirectories); //搜索包含字母a的文件名  
GetFileSystemEntries(String) 返回指定目录中所有文件和子目录的名称。    
GetFileSystemEntries(String, String) 返回与指定搜索条件匹配的文件系统项的数组。    
GetLastAccessTime 返回上次访问指定文件或目录的日期和时间。    
GetLastWriteTime 返回上次写入指定文件或目录的日期和时间。    
Move 将文件或目录及其内容移到新位置。  Directory.Move(@"c:\x", @"c:\xyz");//重命令       //Directory.Move(@"c:\aaa", @"c:\x\aaa");//剪切  
SetCurrentDirectory 安全非常关键。 将应用程序的当前工作目录设置为指定的目录。    

3、File类

string[] strArray=new string[]{"美国","中国","日本","印度","韩国"};
byte[] byteArray = new byte[] {10,23,221,22,1 };
string path=@"c:\1.txt";

操作名称说明例子结果
  AppendAllLines(String, IEnumerable<String>) 在一个文件中追加文本行,然后关闭该文件。    
  AppendAllLines(String, IEnumerable<String>, Encoding) 使用指定的编码向一个文件中追加文本行,然后关闭该文件。    
  AppendAllText(String, String)

打开一个文件,向其中追加指定的字符串,然后关闭该文件。 如果文件不存在,此方法创建一个文件,

将指定的字符串写入文件,然后关闭该文件。

   
  AppendAllText(String, String, Encoding) 将指定的字符串追加到文件中,如果文件还不存在则创建该文件。    
  AppendText 创建一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件。 StreamWriter sw = File.AppendText("c:\\1.txt");

sw.Write("nihaoya");
sw.Flush();
sw.Close();

 
  Copy(String, String) 将现有文件复制到新文件。 不允许覆盖同名的文件。    
  Copy(String, String, Boolean) 将现有文件复制到新文件。 允许覆盖同名的文件。boolean为true覆盖同名文件  File.Copy(@"c:\tempuploads\newFile.txt",@"c:\tempuploads\BackUp.txt",true);  
  Create(String) 在指定路径中创建或覆盖文件。    FileStream NewText=File.Create(@"c:\tempuploads\newFile.txt");
 NewText.Close();
 
  Create(String, Int32) 创建或覆盖指定的文件。    
  Create(String, Int32, FileOptions) 创建或覆盖指定的文件,并指定缓冲区大小和一个描述如何创建或覆盖该文件的FileOptions 值。    
  Create(String, Int32, FileOptions, FileSecurity) 创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。    
  CreateText 创建或打开一个文件用于写入 UTF-8 编码的文本。    
  Decrypt 解密由当前帐户使用 Encrypt 方法加密的文件。    
  Delete 删除指定的文件。  File.Delete(@"c:\tempuploads\newFile.txt");  
  Encrypt 将某个文件加密,使得只有加密该文件的帐户才能将其解密。    
  Exists 确定指定的文件是否存在。public static bool Exists(string path);  if(File.Exists(@"c:\tempuploads\newFile.txt")) //判断文件是否存在  
  GetAccessControl(String) 获取一个 FileSecurity 对象,它封装指定文件的访问控制列表 (ACL) 条目。    
  GetAccessControl(String, AccessControlSections) 获取一个 FileSecurity 对象,它封装特定文件的指定类型的访问控制列表 (ACL) 项。    
  GetAttributes 获取在此路径上的文件的 FileAttributes    
  GetCreationTime 返回指定文件或目录的创建日期和时间。    
  GetCreationTimeUtc 返回指定的文件或目录的创建日期及时间,其格式为协调世界时 (UTC)。    
  GetLastAccessTime 返回上次访问指定文件或目录的日期和时间。    
  GetLastAccessTimeUtc 返回上次访问指定的文件或目录的日期及时间,其格式为协调世界时 (UTC)。    
  GetLastWriteTime 返回上次写入指定文件或目录的日期和时间。    
  GetLastWriteTimeUtc 返回上次写入指定的文件或目录的日期和时间,其格式为协调世界时 (UTC)。    
  Move 将指定文件移到新位置,只能在同一个逻辑盘下进行文件转移。如果试图将c盘下的文件转移到d盘,将发生错误。  File.Move(@"c:\tempuploads\BackUp.txt",@"c:\BackUp.txt");  
  Open(String, FileMode) 打开指定路径上的 FileStream,具有读/写访问权限。 FileStream  TextFile=File.Open(@"c:\tempuploads\newFile.txt",FileMode.Append);
byte [] Info = {(byte)'h',(byte)'e',(byte)'l',(byte)'l',(byte)'o'};
TextFile.Write(Info,0,Info.Length);
TextFile.Close();
 
  Open(String, FileMode, FileAccess) 以指定的模式和访问权限打开指定路径上的 FileStream    
  Open(String, FileMode, FileAccess, FileShare) 打开指定路径上的 FileStream,具有指定的读、写或读/写访问模式以及指定的共享选项。    
  OpenRead 打开现有文件以进行读取。    
  OpenText 打开现有 UTF-8 编码文本文件以进行读取。    
  OpenWrite 打开一个现有文件或创建一个新文件以进行写入。    
  ReadAllBytes 打开一个文件,将文件的内容读入一个字符串,然后关闭该文件。    
  ReadAllLines(String) 打开一个文本文件,读取文件的所有行,然后关闭该文件。    
  ReadAllLines(String, Encoding) 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。    
  ReadAllText(String) 打开一个文本文件,读取文件的所有行,然后关闭该文件。    
  ReadAllText(String, Encoding) 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。    
  ReadLines(String) 读取文件的文本行。    
  ReadLines(String, Encoding) 读取具有指定编码的文件的文本行。    
  Replace(String, String, String) 使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。    
  Replace(String, String, String, Boolean) 用其他文件的内容替换指定文件的内容,删除原始文件,并创建被替换文件的备份和(可选)忽略合并错误。    
  SetAccessControl 对指定的文件应用由 FileSecurity 对象描述的访问控制列表 (ACL) 项。    
  SetAttributes 设置指定路径上文件的指定的 FileAttributes  File.SetAttributes(@"c:\tempuploads\newFile.txt",FileAttributes.ReadOnly|FileAttributes.Hidden);  
  SetCreationTime 设置创建该文件的日期和时间。    
  SetCreationTimeUtc 设置文件创建的日期和时间,其格式为协调世界时 (UTC)。    
  SetLastAccessTime 设置上次访问指定文件的日期和时间。    
  SetLastAccessTimeUtc 设置上次访问指定的文件的日期和时间,其格式为协调世界时 (UTC)。    
  SetLastWriteTime 设置上次写入指定文件的日期和时间。    
  SetLastWriteTimeUtc 设置上次写入指定的文件的日期和时间,其格式为协调世界时 (UTC)。    
  WriteAllBytes 创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 如果目标文件已存在,则覆盖该文件。 File.WriteAllBytes(path,byteArray);  
  WriteAllLines(String, IEnumerable<String>) 创建一个新文件,在其中写入一组字符串,然后关闭该文件。    
  WriteAllLines(String, String[]) 创建一个新文件,在其中写入指定的字符串数组,然后关闭该文件。 File.WriteAllLines(@"c:\1.txt", strArray);  
  WriteAllLines(String, IEnumerable<String>, Encoding) 使用指定的编码创建一个新文件,在其中写入一组字符串,然后关闭该文件。    
  WriteAllLines(String, String[], Encoding) 创建一个新文件,使用指定的编码在其中写入指定的字符串数组,然后关闭该文件。    
  WriteAllText(String, String) 创建一个新文件,在其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。    
  WriteAllText(String, String, Encoding) 创建一个新文件,在其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。    

 

此外,File类对于Text文本提供了更多的支持。

· AppendText:将文本追加到现有文件
· CreateText:为写入文本创建或打开新文件
· OpenText:打开现有文本文件以进行读取

但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。
· 对txt文件进行“读”操作,示例代码如下:

代码如下:
StreamReader TxtReader = new StreamReader(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
string FileContent;
FileContent = TxtReader.ReadEnd();
TxtReader.Close();

· 对txt文件进行“写”操作,示例代码如下:

代码如下:
StreamWriter = new StreamWrite(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
string FileContent;
TxtWriter.Write(FileContent);
TxtWriter.Close();

希望本文所述对大家的C#程序设计有所帮助。

下表描述了用于自定义各种 File 方法的行为的枚举。

 

Enumeration

说明

FileAccess

指定对文件的读取和写入访问。

FileShare

为已在使用中的文件指定允许的访问级别。

FileMode

指定是保留还是覆盖现有文件的内容,并指定创建现有文件的请求是否会导致异常。

posted on 2015-11-13 11:36  crhdyl  阅读(296)  评论(0编辑  收藏  举报

导航