- 操作文件的常用类:File、FileStream、FileInfo等。
- 操作目录的常用类:Directory、Path等。
- 一般情况下,使用File类的静态方法即可满足日常需求,包括按行读取写入、按字节读取写入等。
- 绝对路径的格式:如【D:DesktopFilesfile.txt】。
- 相对路径的格式:如【……………fileStream.txt】,注意,【…】里面是两个点,CSDN表示不出来!
- 相对路径中的【…】表示起始目录的上一级目录,比如起始目录是【…CSharpLearn25binDebugnet5.0】,一般情况下,使用5个【…】即可到达项目所在的目录,即【…】。
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace _25
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("*****测试File类*****");
TestFile();
Console.WriteLine();
Console.WriteLine("*****测试FileStream类*****");
TestFileStream();
Console.WriteLine();
Console.WriteLine("*****测试FileInfo类*****");
TestFileInfo();
Console.WriteLine();
Console.WriteLine("*****测试Directory类*****");
TestDirectory();
Console.WriteLine();
Console.WriteLine("*****测试Path类*****");
TestPath();
Console.WriteLine();
}
///
/// File类
///
public static void TestFile()
{
//写
List writeContent = new List();
writeContent.Add("Test");
writeContent.Add("File");
File.WriteAllLines("D:\Desktop\Files\file.txt", writeContent, Encoding.UTF8);
//读
string[] readContent = File.ReadAllLines("D:\Desktop\Files\file.txt", Encoding.UTF8);
for (int i = 0; i < readContent.Length; i++)
{
Console.WriteLine(readContent[i]);
}
}
///
/// FileStream类
///
public static void TestFileStream()
{
//写
FileStream writeStream = new FileStream("..\..\..\..\..\fileStream.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
string writeContent = "TestnFileStream";
byte[] bytes = Encoding.UTF8.GetBytes(writeContent);
writeStream.Write(bytes, 0, bytes.Length);
writeStream.Close();
//读
FileStream readStream = new FileStream("..\..\..\..\..\fileStream.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
byte[] readContent = new byte[readStream.Length];
readStream.Read(readContent, 0, readContent.Length);
Console.WriteLine(Encoding.UTF8.GetString(readContent));
readStream.Close();
}
///
/// FileInfo类
///
public static void TestFileInfo()
{
FileInfo fileInfo = new FileInfo("D:\Desktop\Files\file.txt");
Console.WriteLine($"创建时间:{fileInfo.CreationTime}");
Console.WriteLine($"上一级目录:{fileInfo.DirectoryName}");
Console.WriteLine($"字节长度:{fileInfo.Length}");
Console.WriteLine($"绝对路径:{fileInfo.FullName}");
}
///
/// Directory类
///
public static void TestDirectory()
{
//判断目录是否存在
Console.WriteLine(Directory.Exists("D:\Desktop\Files\Directory"));
//创建目录
Directory.CreateDirectory("D:\Desktop\Files\Directory");
Console.WriteLine(Directory.Exists("D:\Desktop\Files\Directory"));
//删除目录
Directory.Delete("D:\Desktop\Files\Directory");
Console.WriteLine(Directory.Exists("D:\Desktop\Files\Directory"));
//获取目录下的所有文件的绝对路径
string[] files = Directory.GetFiles("D:\Desktop\Files");
foreach (var item in files)
{
Console.WriteLine(item);
}
}
///
/// Path类
///
public static void TestPath()
{
string filePath = "D:\Desktop\Files\file.txt";
Console.WriteLine($"绝对路径:{Path.GetFullPath(filePath)}");
Console.WriteLine($"文件名+后缀名:{Path.GetFileName(filePath)}");
Console.WriteLine($"文件名:{Path.GetFileNameWithoutExtension(filePath)}");
Console.WriteLine($"后缀名:{Path.GetExtension(filePath)}");
Console.WriteLine($"根目录:{Path.GetPathRoot(filePath)}");
Console.WriteLine($"上一级目录:{Path.GetDirectoryName(filePath)}");
}
}
}