C# file 文件操作

1. 简介

若要执行此操作...请参阅本主题中的示例...
创建文本文件向文件写入文本
写入文本文件向文件写入文本
读取文本文件从文件读取文本
向文件中追加文本File.AppendText FileInfo.AppendText
重命名或移动文件File.Move FileInfo.MoveTo
删除文件File.Delete FileInfo.Delete
复制文件File.Copy FileInfo.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.txt
FileInfo[] texts = Directory.GetFiles(".txt");                      //获取指定目录中的文件名(文件列表)
//创建目录
DirectoryInfo d=Directory.CreateDirectory("c:\\sixAge");            // 创建目录c:\sixAge
DirectoryInfo d1=d.CreateSubdirectory("sixAge1");                   // d1指向c:\sixAge\sixAge1
DirectoryInfo d2=d1.CreateSubdirectory("sixAge1_1");                // d2指向c:\sixAge\sixAge1\sixAge1_1
Directory.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#中的文件操作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值