C# 文件目录操作

目录操作

1.引入库

using System.IO;

2. 创建目录

string path = "D:\testDir1\testDir2\testDir3"
Directory.CreateDirectory(path)
// 允许级联创建

3. 删除目录

string path = "D:\testDir1"
Directory.Delete(path, false); // 如果目标文件夹非空,不删除 
Directory.Delete(path, true); // 目标文件夹非空则级联删除

4. 移动目录

string path = "D:\testDir\sourceDir\sourceDir";

Directory.CreateDirectory(path)
Directory.Move(path, "D:\destDir");

// D:\testDir\sourceDir\sourceDir -> // D:\destDir 

// destDirName 参数指定的目标路径应为新目录,如果目标目录已存在,会导致异常。

文件操作

1. 判断文件是否存在

if(File.Exists("D:\testfile.txt")){
    Console.WriteLine("ok!");
}else{
    Console.WriteLine("are you kidding me ?");
}

2. 复制文件

string test_file = "D:\testfile.txt";
File.Copy("D:\testfile.txt", "D:\tmptestfile.txt");

3. 删除文件

File.Delete("D:\tmptestfile.txt");

4. 文件属性判断

// C#中文件的每一个属性都被一个唯一的二进制数表示
// 以下代码判读某个路径是否为文件夹
// 可以通过 .GetAttributes() 和 .SetAttributes() 来获取和修改属性
if (( File.GetAttributes(path) & FileAttributes.Directory) 	== FileAttributes.Directory ) 
{  //这个判断是如何进行的?
    Console.WriteLine("“{0}”是目录", path);
}
else {
    Console.WriteLine("“{0}”是文件", path);
}

5. 文件读写

string File.ReadAllText(string path, Encoding encoding) 
// 读取每一行,拼接为一个字符串

string[] File.ReadAllLines(string path, Encoding encoding)
//  读取每一行,返回一个字符串数组
    
void WriteAllText(string path, string content, Encoding encoding) 
// 将指定字符串覆盖到文件中,如果文件不存在则创建
    
void AppendAllText(string path, string content, Encoding encoding)
// 将指定字符串追加到文件中,如果文件不存在则创建
    
// 相应的还有:

WriteAllLines()
AppendAllLines()

6. FileStream

using (FileStream fs = File.Open(@"C:Users13234Desktopfstest.txt", FileMode.Create))
{
    byte[] b = Encoding.UTF8.GetBytes("你好!世界》");
    fs.Write(b, 0, b.Length);
}

using(FileStream fs = File.Open(@"C:Users13234Desktopfstest.txt", FileMode.Open))
{
    byte[] b = new byte[1024]; // 每次读取的缓存大小
    int len = 0;
    while((len = fs.Read(b, 0, b.Length)) > 0)
    {
        Console.WriteLine(Encoding.UTF8.GetString(b, 0, len) + "
");
    }
}
---- suffer now and live the rest of your life as a champion ----
原文地址:https://www.cnblogs.com/popodynasty/p/14868925.html