C# file 文件操作

来源:互联网 发布:mysql自动递增 编辑:程序博客网 时间:2024/05/16 01:52

1. 简介

若要执行此操作...请参阅本主题中的示例...创建文本文件向文件写入文本写入文本文件向文件写入文本读取文本文件从文件读取文本向文件中追加文本File.AppendTextFileInfo.AppendText重命名或移动文件File.MoveFileInfo.MoveTo删除文件File.DeleteFileInfo.Delete复制文件File.CopyFileInfo.CopyTo获取文件大小FileInfo.Length获取文件属性File.GetAttributes设置文件属性File.SetAttributes确定文件是否存在File.Exists读取二进制文件对刚创建的数据文件进行读取和写入写入二进制文件对刚创建的数据文件进行读取和写入检索文件扩展名Path.GetExtension检索文件的完全限定路径Path.GetFullPath检索路径中的文件名和扩展名Path.GetFileName更改文件扩展名Path.ChangeExtension


2. 目录操作

System.IO.Directory 和 System.IO.DirectoryInfo//获取目录string[] drives = Directory.GetLogicalDrives();                     //本地驱动器的名,如:C:\等string path = Directory.GetCurrentDirectory();                      //获取应用程序的当前工作目录Directory.GetFileSystemEntries                                      //获取指定目录中的目录及文件名Directory.GetLogicalDrives                                          //检索此计算机上格式为“<驱动器号>:\”的逻辑驱动器的名称,【语法同上】Directory.GetParent                                                 //用于检索父目录的路径。Path.GetFileName(@"c:\dir\file.txt");                               //获取子目录的名字,result的结果是file.txtFileInfo[] texts = Directory.GetFiles(".txt");                      //获取指定目录中的文件名(文件列表)//创建目录DirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");            // 创建目录c:\sixAgeDirectoryInfo d1=d.CreateSubdirectory("sixAge1");                   // d1指向c:\sixAge\sixAge1DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");                // d2指向c:\sixAge\sixAge1\sixAge1_1Directory.SetCurrentDirectory("c:\\sixAge");                        // 将当前目录设为c:\sixAge//判断if (di.Exists == false)                                             //检查是否存在此目录//删除DirectoryInfo dis = di.CreateSubdirectory("SubDir");                //以相对路径创建子目录dis.Delete(true);                                                   //删除刚创建的子目录di.Delete(true);                                                    //删除创建目录//递归删除文件夹及文件public void DeleteFolder(string dir){    if (Directory.Exists(dir)) //如果存在这个文件夹删除之    {        foreach(string d in Directory.GetFileSystemEntries(dir))        {            if(File.Exists(d))                File.Delete(d); //直接删除其中的文件            else                DeleteFolder(d); //递归删除子文件夹        }        Directory.Delete(dir); //删除已空文件夹        Response.Write(dir+" 文件夹删除成功");    }    else        Response.Write(dir+" 该文件夹不存在"); //如果文件夹不存在则提示} 


3. 文件操作

System.IO.Directory , System.IO.DirectoryInfo, System.IO.File , System.IO.FileInfo, System.IO.StremWriter, System.IO.StremReader
3.1 base
//创建,打开StreamWriter sw = File.CreateText(path) //创建并写入(将覆盖已有文件)//读StreamReader sr = File.OpenText(path); while ((s = sr.ReadLine()) != null){   Console.WriteLine(s);}//写StreamWriter sw = File.CreateText(path);sw.WriteLine("Hello");//移动Directory.Move(@"f:\bbs\1", @"f:\bbs\2"); //将文件夹1内的文件剪到文件夹2内 文件夹2是刚创建的//复制File.Copy(path, @"f:\tt.txt");//删除File.Delete(path);

3.2 Stream Operations
Stream // 对字节的读写操作(包含对异步操作的支持) Reading Writing Seeking

BinaryReader和BinaryWriter // 从字符串或原始数据到各种流之间的读写操作

FileStream类通过Seek()方法进行对文件的随机访问,默认为同步

TextReader和TextWriter //用于gb2312字符的输入和输出

StringReader和StringWriter //在字符串中读写字符

StreamReader和StreamWriter //在流中读写字符

BufferedStream 为诸如网络流的其它流添加缓冲的一种流类型.

MemoryStream 无缓冲的流
NetworkStream 互联网络上的流

private const string name = "Test.data";public static void Main(String[] args){    //打开文件()  ,或通过File创建立如:fs = File.Create(path, 1024)    FileStream fs = new FileStream(name, FileMode.CreateNew);    //转换为字节 写入数据(可写入中文)    Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");    //字节数组,字节偏移量,最多写入的字节数    fs.Write(info, 0, info.Length);    w.Close();    fs.Close();    //打开文件    fs = new FileStream(name, FileMode.Open, FileAccess.Read);    //读取    BinaryReader r = new BinaryReader(fs);    for (int i = 0; i < 11; i++)    {        Console.WriteLine(r.ReadInt32());    }    w.Close();    fs.Close();}

4. 参考

(1)C#对于文件操作

(2)浅析C#中的文件操作

原创粉丝点击