C#-文件操作的一些常用函数及压缩文件

1.判断目录或文件是否存在(using System.IO;):

1
2
Directory.Exists(path);//目录是否存在
File.Exists(filePath);/文件是否存在

2.创建或删除-目录或文件:

1
2
3
4
5
Directory.CreateDirectory(path);//创建目录
Directory.Delete(path);//删除目录
File.Create(path);//创建文件
File.Delete(path);//删除文件
StreamWriter sw = new StreamWriter(path, true);//true表示追加,false表示覆盖,文件不存在则创建

3.获取目录下所有子目录 或 截取文件路径:

1
2
3
4
string[] dirs = Directory.GetDirectories(dirPath);
string str = Path.GetDirectoryName(filePath); //获取文件路径中的目录路径部分
string str = Path.GetFileName(filePath);//获取文件路径中的文件名称
string str = Path.GetFileNameWithoutExtension(filePath);//获取文件路径中文件名称(不包括后缀名)

4.获取目录下所有文件或指定后缀文件:

1
2
string[] files = Directory.GetFiles(path);
string[] files = Directory.GetFiles(path,"*.txt");

5.使用遍历获取目录下所有文件:

复制代码
 1         void GetAllFiles(string root)
 2         {
 3             string[] dirs = Directory.GetDirectories(root);
 4             string[] files = Directory.GetFiles(root);
 5             foreach (string f in files)
 6             {
 7                 FileInfo file = new FileInfo(f);
 8                 Console.WriteLine(f + " " + file.CreationTime + " " + file.Length + "B");
 9             }
10             foreach (string d in dirs)
11                 GetAllFiles(d);
12         }
GetAllFiles
复制代码

6.使用遍历由内而外删除目录下所有文件及目录:

复制代码
 1         void DeleteAllFiles(string root)
 2         {
 3             DirectoryInfo folder = new DirectoryInfo(root);
 4             FileInfo[] files = folder.GetFiles();
 5             DirectoryInfo[] childFolders = folder.GetDirectories();
 6             foreach (DirectoryInfo chldFolder in childFolders)
 7                 DeleteAllFiles(chldFolder.FullName);
 8             foreach (DirectoryInfo chldFolder in childFolders)
 9             {
10                 chldFolder.Delete();
11                 Console.WriteLine("Delete Folder:" + chldFolder.FullName);
12             }
13             foreach (FileInfo f in files)
14             {
15                 f.Delete();
16                 Console.WriteLine("Delete Files:" + f.FullName);
17             }
18         }
DeleteAllFiles
复制代码

7.将数据写入到文件,若不存在则创建文件:

复制代码
 1             using (FileStream fs = new FileStream(path + file, FileMode.Append, FileAccess.Write))
 2             {
 3                 using (StreamWriter sw = new StreamWriter(fs))
 4                 {
 5                     sw.WriteLine("123");
 6                     sw.Flush();
 7                     sw.Close();
 8                     File.Copy(path + file, path + copy, true);
 9                 }
10                 fs.Close();
11             }
View Code
复制代码

8.读取文件数据:

复制代码
 1         using (FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
 2          {
 3                using (StreamReader sr = new StreamReader(fs))
 4                {
 5                      while (true)
 6                       {
 7                            string line = sr.ReadLine();
 8                             if (line == null)
 9                                 break;
10                             Console.WriteLine(f + ":" + line);
11                        }
12                        sr.Close();
13                 }
14                 fs.Close();
15          }
View Code
复制代码

若文件中存在汉字,添加下面参数:

1
2
StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("gb2312"));
//StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("utf-8"));

9.压缩目录文件夹(using System.IO.Compression):

1
ZipFile.CreateFromDirectory(oldPath, zipPath, CompressionLevel.Optimal, true);

10.解压压缩包:

1
ZipFile.ExtractToDirectory(zipPath, "D:\\test");

11.向压缩包追加文件:

1
2
3
4
5
using (FileStream fs = new FileStream(zipPath, FileMode.Open))
{
    using (ZipArchive arch = new ZipArchive(fs, ZipArchiveMode.Update))
          arch.CreateEntryFromFile(file, Path.GetFileName(file));
}

 

  

  

posted @   [春风十里]  阅读(199)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示