C#中File静态类对文件的读取写入

 更新时间:2022年05月11日 08:48:57   作者:springsnow  
这篇文章介绍了C#中File静态类对文件的读取写入,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。

一、读文件:

1、返回字符串:

string readText = File.ReadAllText(@"c:\temp\MyTest.txt");

2、返回字符串数组:

string[] readText = File.ReadAllLines(@"c:\temp\MyTest.txt", Encoding.UTF8);

3、返回字节数组:

byte[] buffer = File.ReadAllBytes(@"c:\temp\MyTest.txt");
string str = Encoding.Default.GetString(buffer, 0, buffer.Length);

4、返回StreamReader

打开现有的UTF-8文本以进行读取

using (StreamReader sr = File.OpenText(@"c:\temp\MyTest.txt"))
{
    string s;
    while ((s = sr.ReadLine()) != null)
    {
        Console.WriteLine(s);
    }
}

二、写文件

创建一个新文件向其中写入内容,文件已存在则覆盖。

1、写入字符串:

string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);//File.WriteAllText(),File.AppendAllText()

2、写入字符串数组:

string[] createText = { "Hello", "And", "Welcome" };
File.WriteAllLines(path, createText);

3、写入字节数组:

string str = "哈哈哈哈哈哈";
byte[] buffer = Encoding.Default.GetBytes(str);
File.WriteAllBytes(path,buffer);

4、返回StreamWriter

创建或打开现有的UTF-8文本,以进行写入或追加

using (StreamWriter sw = File.CreateText(path)) //StreamWriter:File.CreateText()、File.AppendText()
{
    sw.WriteLine("Hello");
    sw.WriteLine("And");
    sw.WriteLine("Welcome");
}

三、返回FileStream的操作

File.Open():默认为不共享、具有读/写访问权限

using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
    byte[] b = new byte[1024];
    UTF8Encoding temp = new UTF8Encoding(true);

    while (fs.Read(b, 0, b.Length) > 0)
    {
        Console.WriteLine(temp.GetString(b));
    }
}

File.OpenRead():读访问权限

File.OpenWrite:写访问权限

using (FileStream fs = File.OpenWrite(path))
{
    Byte[] info = new UTF8Encoding(true).GetBytes("This is to test the OpenWrite method.");

    // Add some information to the file.
    fs.Write(info, 0, info.Length);
}

File.Create():

using (FileStream fs = File.Create(path))
{
    Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    // Add some information to the file.
    fs.Write(info, 0, info.Length);
}

四、File类的常用操作:

  • 文件删除方法:File.Delete()
  • 文件复制方法:File.Copy()
  • 文件移动方法:File.Move()
  • 设置文件属性方法:File.Set/Get***()
  • 判断文件是否存在的方法:File.Exist()

五、Directory类的常用操作:

//删除此目录
Directory.Delete(@"C:\新建文件夹")

//删除此目录,true表示要是此目录有子目录也删除,否则就抛出异常
Directory.Delete(@"C:\新建文件夹", false);

//此目录是否存在
bool b = Directory.Exists(@"C:\新建文件夹");

//根据路径返回此目录下的子目录
string[] dirs1 = Directory.GetDirectories(@"C:\新建文件夹");

//第二个参数表示:搜索的范围,就是搜索的文件夹包含“基础”关键字
string[] dirs2 = Directory.GetDirectories(@"C:\新建文件夹", "基础");

//搜索目录下的所有文件
string[] files = Directory.GetFiles(@"C:\新建文件夹");

//第三个参数表示:指定搜索操作应包括所有子目录还是仅包括当前目录。
string[] files1 = Directory.GetFiles(@"C:\新建文件夹", "2.txt", SearchOption.AllDirectories);

//(获取指定目录下的所有目录时返回一个DirectoryInfo数组。)
DirectoryInfo dirs = Directory.GetParent(@"C:\新建文件夹");

//移动、剪切。只能在同一个磁盘中。目录没有Copy方法。可以使用Move()方法实现重命名。
Directory.Move(@"F:\测试\33", @"F:\测试\32\33");

六、FileSystemInfo

派生类:

  • DirectoryInfo
  • FileInfo

1、FileInfo类

//实例化FileInfo进行操作
FileInfo myfile = new FileInfo(path); //声明一个对象对某一个文件进行操作
myfile.CopyTo(destpath);  //对文件进行复制操作,复制路径为destpath
myfile.MoveTo(destpath);  //进行移动操作
myfile.Delete();          //进行删除操作

//获得某一文件或文件夹的详细信息(创建日期,最后一次修改日期等等)
FileInfo myfile = new FileInfo(path); //声明一个对象对某一个文件进行操作
DateTime dt = myfile.CreationTime;  //获取或设置文件/文件夹的创建日期
string filepath = myfile.DirectoryName; //仅能用于FileInfo,获得完整的路径名,路径+文件名
bool file = myfile.Exists;              //此属性的值表示文件或文件夹是否存在,存在会返回True
string fullname = myfile.FullName;     //获取文件或文件夹的完整路径名
DateTime lastTime = myfile.LastAccessTime; //获取或设置最后一次访问文件或文件夹的时间
DateTime lastWrite = myfile.LastWriteTime; //获取或设置最后一次修改文件夹或文件夹的时间
string name = myfile.Name;                 //获取文件名,不能修改哦
long length = myfile.Length;                  //返回文件的字节大小
//CreationTime,LastAccessTime,LastWriteTime都是可以被修改的。

2、DirectoryInfo类

DirectoryInfo dir = new DirectoryInfo(@"d:\C#程序设计");
if (!dir.Exists)
{
    dir.Create();
}
else
{
    Console.WriteLine("该目录已经存在");
}

七、DriveInfo类

在Windows操作系统中,存储介质统称为驱动器,硬盘由于可以划分为多个区域,每一个区域称为一个驱动器。

DriveInfo类的常用字段成员有

  • DriveFormat(文件系统格式,如NTFS或FAT32)、
  • DriveType(驱动器类型)、
  • Name(驱动器名)、
  • TotalSize(总空间)、
  • TotalFreeSpace(获得驱动器可用空间)。

常用的方法成员有GetDrives(获得可用驱动器列表)。

DriveType枚举型的枚举值有CDRom(光驱)、Fixed(硬盘)、Network(网络驱动器)和Removeable(软盘或U盘)等。

例如,以下代码可以输出每一个硬盘驱动器的剩余空间信息。

DriveInfo[] drivers = DriveInfo.GetDrives();
foreach (DriveInfo driver in drivers)
{
    if (driver.DriveType == DriveType.Fixed && driver.DriveFormat == "NTFS")
    {
        Console.WriteLine("在{0}驱动器上还有{1}字节的剩余空间。", driver.Name, driver.AvailableFreeSpace);
    }
}

到此这篇关于C#使用File静态类读写文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 一篇文章教会你用Unity制作网格地图生成组件

    一篇文章教会你用Unity制作网格地图生成组件

    网格地图这个功能在策略型游戏中应用比较广泛,基本情况下会将地图分割成正方形网格或者六边形网格,这篇文章主要给大家介绍了如何通过一篇文章学会用Unity制作网格地图生成组件的相关资料,需要的朋友可以参考下
    2021-08-08
  • c# 垃圾回收(GC)优化

    c# 垃圾回收(GC)优化

    这篇文章主要介绍了c# 垃圾回收(GC)优化的相关资料,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2021-02-02
  • C#调用C类型dll入参为struct的问题详解

    C#调用C类型dll入参为struct的问题详解

    这篇文章主要给大家介绍了关于C#调用C类型dll入参为struct问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • unity实现屏幕上写字效果

    unity实现屏幕上写字效果

    这篇文章主要为大家详细介绍了unity实现屏幕上写字效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 在Framework 4.0中:找出新增的方法与新增的类(一)

    在Framework 4.0中:找出新增的方法与新增的类(一)

    经常看到有同学在讨论Framework 4 的新特性,新方法,于是想写个程序找出framework4.0中新增的方法和类
    2013-05-05
  • 基于使用递归推算指定位数的斐波那契数列值的解决方法

    基于使用递归推算指定位数的斐波那契数列值的解决方法

    本篇文章介绍了,基于使用递归推算指定位数的斐波那契数列值的解决方法。需要的朋友参考下
    2013-05-05
  • C# StartsWith 字符串的实例方法解析

    C# StartsWith 字符串的实例方法解析

    这篇文章主要介绍了C# StartsWith 字符串的实例方法,StartsWith 方法对于需要检查字符串的前缀是否匹配特定模式的情况非常有用,你可以根据返回的布尔值,根据需要执行相应的逻辑操作,需要的朋友可以参考下
    2024-03-03
  • WinForm实现仿视频播放器左下角滚动新闻效果的方法

    WinForm实现仿视频播放器左下角滚动新闻效果的方法

    这篇文章主要介绍了WinForm实现仿视频播放器左下角滚动新闻效果的方法,涉及WinForm窗口滚动字幕设置的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 如何使用C#代码创建快捷方式文件详解

    如何使用C#代码创建快捷方式文件详解

    在Windows中创建快捷方式很简单,如果想用C#代码的方式创建,就没有那么方便了,因为.NET框架没有提供直接创建快捷方式的方法。这篇文章主要给大家介绍了关于如何使用C#代码创建快捷方式文件的相关资料,需要的朋友可以参考下
    2018-08-08
  • C#中的预定义类型与引用类型

    C#中的预定义类型与引用类型

    这篇文章介绍了C#中的预定义类型与引用类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05

最新评论