奇酷教育VR高级入门教程41:文件IO的应用实例
如何获得某个盘符或者路径下的所有目录和子目录的信息呢?
using System;
using System.IO;
public class Files
{
//将string 改变为DirectoryInfo
public static void dispDirs(DirectoryInfo dir)
{
Console.WriteLine("{0}", dir.FullName);
//返回目录中的目录列表对象
DirectoryInfo[] directories = dir.GetDirectories();
foreach (DirectoryInfo dirX in directories)
{
dispDirs(dirX);
}
}
public static void Main(String[] args)
{
//保存目录存在
DirectoryInfo dir = new DirectoryInfo("D:\\TOOLS");
if (dir.Exists)
dispDirs(dir);
else
Console.WriteLine("访问目录不存在!");
Console.Read();
}
}
文件管理
File类通常和FileStream类协作来完成对文件的创建、删除、拷贝、移动、打开等操作。
File类提供的静态方法主要有Create、Copy、Move、Delete、GetLastAccessTime 等,利用它们可以完成一些基本的文件管理。也可以通过FileInfo类来实现同样的操作。
获取文件基本信息
1 获取文件的大小
new FileStream(path).Length
2 获取文件扩展名
Path.GetExtension(path)
3 获取文件创建时间
File.GetCreationTime(path);
4 获取文件最后一次修改时间
File.GetLastAccessTime(path);
5 获取文件名禁止使用的字符
Path.GetInvalidPathChars();
文件流
StreamReader和StreamWriter类提供以一种特定的编码从字节流中读取字符。
文件流获得
通过File类中的Open、OpenRead、OpenWrite获得FileStream文件流。
通过AppendText可获得UTF-8编码格式的StreamReader类对象。
文件的读取和写入
1 创建一个文件用于写入UTF-8编码的文本
2 OpenRead方法打开现有文件并读取
3 OpenWrite方法打开现有文件并进行写入
4 打开现有UTF-8编码文本文件并进行读取
5 读取文件中的第一行数据
6 按行读取文本文件中的数据
7 读取文件中的所有数据
8 向文件中写入追加数据
二进制读写文件
BinaryReader 和BinaryWriter 类,用于按二进制模式读写文件。
它们提供的一些读写方法是对称的,比如针对不同的数据结构,BinaryReader提供了ReadByte、ReadBoolean、ReadInt、ReadInt16、ReadDouble、ReadString等方法,而BinaryWriter 则提供了重载了17次的Write 方法。
BinaryReader读取数据所用方法必须和BinaryWriter写入数据所用方法对应。