C# 文件操作

文件操作: 检查 创建 读取 写入 修改 删除
目录操作: 检查 创建 读取 写入 修改 删除
文件操作
若要执行此操作...请参阅本主题中的示例...
创建文本文件
写入文本文件
读取文本文件
向文件中追加文本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

目录操作

System.IO 类

目录操作
string[] drives = Directory.GetLogicalDrives();   //本地驱动器的名,如:C:\等
string path = Directory.GetCurrentDirectory();  //获取应用程序的当前工作目录
Path.GetFileName(@"c:\dir\file.txt");              //获取子目录的名字,result的结果是file.txt
Directory.GetFiles(路径及文件名)                     //获取指定目录中的文件名(文件列表)
DirectoryInfo di = new DirectoryInfo(@"f:\MyDir");      //构造函数创建目录
DirectoryInfo di=Directory.CreateDirectory(@"f:\bbs"); //创建对象并创建目录
if (di.Exists == false)                                    //检查是否存在此目录
di.Create();                                                //创建目录
DirectoryInfo dis = di.CreateSubdirectory("SubDir");    //以相对路径创建子目录
dis.Delete(true);                                         //删除刚创建的子目录
di.Delete(true);                                          //删除创建目录


文件操作
Directory.Delete(@"f:\bbs2", true); //删除目录及其子目录和内容(如为假不能删除有内容的目录包括子目录)
Directory.GetDirectories 方法 //获取指定目录中子目录的名称
string[] dirs = Directory.GetDirectories(@"f:\", "b*");
Console.WriteLine("此目录中以b开头的子目录共{0}个!", dirs.Length);
foreach (string dir in dirs) { Console.WriteLine(dir); }
Directory.GetFileSystemEntries //获取指定目录中的目录及文件名
Directory.GetLogicalDrives //检索此计算机上格式为“<驱动器号>:\”的逻辑驱动器的名称,【语法同上】
Directory.GetParent //用于检索父目录的路径。
DirectoryInfo a = Directory.GetParent(path);
Console.WriteLine(a.FullName);Directory.Move //移动目录及其在内的所有文件
Directory.Move(@"f:\bbs\1", @"f:\bbs\2"); //将文件夹1内的文件剪到文件夹2内 文件夹2是刚创建的
 

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

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

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

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

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

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

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

MemoryStream 无缓冲的流

NetworkStream 互联网络上的流



//编码转换
Encoding e1 = Encoding.Default;               //取得本页默认代码
Byte[] bytes = e1.GetBytes("中国人民解放军"); //转为二进制
string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //转回UTF-8编码

 




//文本文件操作:创建/读取/拷贝/删除
using System;
using System.IO;
class Test
{
   string path = @"f:\t.txt";
   public static void Main()
   {       
      //创建并写入(将覆盖已有文件)
      if (!File.Exists(path))
      {         
         using (StreamWriter sw = File.CreateText(path))
         {
            sw.WriteLine("Hello");
         }
      }
      //读取文件
      using (StreamReader sr = File.OpenText(path))
      {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
           Console.WriteLine(s);
        }
     }
     //删除/拷贝
     try
     {
        File.Delete(path);
        File.Copy(path, @"f:\tt.txt");
     }
     catch (Exception e)
     {
        Console.WriteLine("The process failed: {0}", e.ToString());
     }
   }
}


//流文件操作
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();
}

转载于:https://www.cnblogs.com/qinfei/archive/2005/11/03/268229.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值