首页 > 编程语言 >C#-文件操作的一些常用函数及压缩文件

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

时间:2023-01-12 15:34:06浏览次数:39  
标签:fs 函数 C# 压缩文件 file new Directory using string

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

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

2.创建路径上所有目录及子目录:

Directory.CreateDirectory(path);

3.获取目录下所有子目录:

string[] dirs = Directory.GetDirectories(dirPath);

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

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         }

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         }

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             }

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          }

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

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

10.解压压缩包:

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

11.向压缩包追加文件:

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

 

  

  

标签:fs,函数,C#,压缩文件,file,new,Directory,using,string
From: https://www.cnblogs.com/cfsl/p/17046822.html

相关文章

  • LeetCode刷题(41)~买卖股票的最佳时机
    题目描述给定一个数组,它的第i个元素是一支给定股票第i天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意......
  • AZ-500 Lab-add the network interface of a virtual machine to an ASG
    由于微软Azure平台界面一直都在变,所以通过考试的关键,是真正理解lab题要表达的意思,不要死记硬背。SIMULATION-Youneedtoaddthenetworkinterfaceofavirtualmachine......
  • 读取excel文件以及相关参数解释
    读取excel文件以及相关参数解释read_excel常用参数解释,包括(header、index_col、sheet_name、skipfooter、skiprows、converters等)#*header*(int,listofint,default......
  • LeetCode刷题(43)~汉明距离【异或+布赖恩·克尼根算法】
    题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数x和y,计算它们之间的汉明距离。注意:0≤x,y<231.示例:输入:x=1,y......
  • LeetCode刷题(39)~丑数
    题目描述编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2,3,5的正整数。示例1:输入:6输出:true解释:6=2×3示例2:输入:8输出:true解释:8=2......
  • 亚马逊小家电深圳市面包机CE认证办理EMC和LVD指令
    面包机CE认证办理,相信还是有不少家庭都有这个电器吧,可能在欧盟比较常见,因为那边很多家庭都是自己做早餐,面包机可能是不能或缺的机器,一份美美的早餐让面包机在欧盟市场的占有......
  • 欧盟电动滑板车CE认证,EN17128测试标准详情
    电动滑板车是继传统滑板之后的又一新型滑板运动产品。电动滑板车节约能源,充电快速且续航能力强。整车造型美观、可以折叠,操作方便,驾驶更安全。电动滑板车起源于德国,发展于欧......
  • 注解@EnableAsync使用注意项
    注解@EnableAsync使用注意项以异步性能优化为目的,反而带来的整体业务不可用的结果,是不可取的一种优化。SpringBoot默认用于异步任务的配置参数其中两项如下:queueCapaci......
  • ORACLE ORA-12638:身份证明检索失败
    使用PLSQL连接远程数据库时,有时候会遇到提示ORA-12638:身份证明检索失败的问题,怎么办呢?有两种方法,选择一种更改就行了,网络上大多是第一种方法,如果已经找过不是你想要的答案,......
  • @ConfigurationProperties使用中遇到的问题
    用Spingboot的小伙伴一定用过@ConfigurationProperties注解。这个注解的作用就是将properties或这yml中配置的参数值根据key注入到配置类(JavaBean)中,然后用@Autowri......