继承自System.IO
查看文件
FileInfo常用属性
Exists 获取文件是否存在
Name 获取文件名
Directory 获取文件所在路径
Length 获取当前文件的大小
FileInfo常用方法
Delete() 删除文件
CopyTo(文件名,bool) 复制文件到当前目录 并更改文件名 bool值表示是否替换当前文件
Create() 创建文件
MoveTo() 移动文件 也可用于重命名文件
DirectoryInfo常用属性
Exists 获取文件夹是否存在
Name 获取文件夹名称
Parent 获取文件夹父目录
Root 获取文件夹根目录
CreationTime 获取文件夹的创建时间
DirectoryInfo常用方法
CreateSubdirectory("A") 创建子目录
Create() 创建文件夹
代码:
class Program
{
static void Main(string[] args)
{
//相对路径:找当前文件所在位置
FileInfo file = new FileInfo("TextFile1.txt");
//绝对路径:找当前文件的完整路径
FileInfo file = new FileInfo(@"完整路径\TextFile1.txt");
Console.WriteLine(file.Exists);//Exists属性 获取文件是否存在
Console.WriteLine(file.Name);//文件名
Console.WriteLine(file.Directory);//取得文件所在路径
Console.WriteLine(file.Length);//获取当前文件的大小 以字节为单位
file.Delete();//删除文件
file.CopyTo("Text1");//复制文件到当前目录
FileInfo file2 = new FileInfo("A.txt");
if (!file2.Exists)//如果当前文件不存在
{
file2.Create();//创建文件
}
file2.MoveTo("B.txt");//重命名文件
DirectoryInfo directory = new DirectoryInfo(@"完整路径\Debug");
Console.WriteLine(directory.Exists);//文件夹是否存在
Console.WriteLine(directory.Name);//文件夹名称
Console.WriteLine(directory.Parent);//文件夹父目录
Console.WriteLine(directory.Root);//文件夹根目录
Console.WriteLine(directory.CreationTime);//文件夹的创建时间
directory.CreateSubdirectory("A");//创建子目录
DirectoryInfo directory2 = new DirectoryInfo("test");
if (!directory2.Exists)
{
directory2.Create();//创建文件夹
}
Console.ReadLine();
}
使用File读写文件
File.ReadAllLines(文件名) 以行来读取文本文件,返回一个字符串数组
File.ReadAllText(文件名) 直接读取整个文本文件,返回一个字符串
File.ReadAllBytes(文件名) 以字节读取文件,返回一个字节数组
File.WriteAllText(文件名, 字符串) 创建一个新文件 并写入一个字符串
File.WriteAllLines(文件名, 字符串数组) 创建一个新文件 并写入一个字符串数组
File.WriteAllBytes(文件名, 字节数组) 创建一个新文件 并写入一个字节数组
代码:
static void Main(string[] args)
{
string[] strArray = File.ReadAllLines("TextFile1.txt");//以行来读取文本文件
string text = File.ReadAllText("TextFile1.txt");//直接读取整个文本文件
foreach (var s in strArray)
{
Console.WriteLine(s);
}
byte[] byteArray = File.ReadAllBytes("000.jpg");//以字节读取文件
foreach (var b in byteArray)
{
Console.WriteLine(b);
}
File.WriteAllText("text1.txt", "Hello World");//创建一个新文件 并写入一个字符串
File.WriteAllLines("text2.txt", new string[] { "aaa", "bbb", "ccc" });//创建一个新文件 并写入一个字符串数组
File.WriteAllBytes("001.jpg", byteArray);//创建一个新文件 并写入一个字节数组
Console.WriteLine(text);
Console.ReadKey();
}
使用FileStream读写文件(适合读取二进制文件)
FileStream读取
FileStream stream = new FileStream(文件名, FileMode);
stream.Read(byte[],offset,count); 第一个参数用于传递一个数据容器,第二个参数用于定位在数据容器中读取的位置,第三个参数表示读取数据的长度
stream.Write(byte[],offset,count); 与读取差不多,用于写入数据
代码:
static void Main(string[] args)
{
FileStream stream = new FileStream("000.jpg", FileMode.Open);
byte[] data = new byte[1024];//数据容器
while (true)
{
int length = stream.Read(data, 0, data.Length);
//将数据从0一直到数据容器的最大长度读取到数据容器中
//如果一次读取的数据长度超过了数据容器的最大长度,
//则第二次读取的数据会在上一次读完的长度开始,继续读取剩余的数据
//直到数据全部读完,如果已经到达数据流的结尾,则返回0
if (length == 0) break;
for (int i = 0; i < length; i++)
{
Console.Write(data[i] + " ");
}
}
----------------------------------------------------------------------------------------------------------------------
//使用FileStream完成文件的复制
//创建一个文件流用于读取
FileStream readStream = new FileStream("000.jpg", FileMode.Open);
//创建另一个文件流用于写入新文件
FileStream writeStream = new FileStream("001.jpg", FileMode.Create);
while (true)
{
int length = readStream.Read(data, 0, data.Length);
if (length == 0) break;
else
{
writeStream.Write(data, 0, length);//写入文件流
}
}
writeStream.Close();//关闭文件流
readStream.Close();
Console.ReadLine();
}
使用StreamReader和StreamWriter读写(适合读取文本文件)
StreamReader reader = new StreamReader(文件名);
StreamWriter writer = new StreamWriter(文件名); 如果文件已存在 则覆盖原文件
reader.Read() 读取一个字符 返回类型是int 当读完文件时返回-1
reader.ReadLine() 读取一行字符串
reader.ReadToEnd() 读取到文本结尾
writer.WriteLine(string text) 写入一个字符串并换行
代码:
static void Main(string[] args)
{
StreamReader reader = new StreamReader("TextFile1.txt");
while (true)
{
string str = reader.ReadLine();//读取一行字符串
if (str == null) break;
Console.WriteLine(str);
}
string data = reader.ReadToEnd();//读取到文本的结尾 返回一个字符串
Console.WriteLine(data);
while (true)
{
int c = reader.Read();
if (c == -1) break;
else Console.WriteLine((char)c);
}
StreamWriter writer = new StreamWriter("Test.txt");//如果文件已经存在 则会覆盖
while (true)
{
string text = Console.ReadLine();
if (text == "q") break;
writer.WriteLine(text);//写入一个字符串并换行
}
writer.Close();
reader.Close();
}