首页 > 其他分享 >如何过滤出特定扩展名的文件

如何过滤出特定扩展名的文件

时间:2024-11-02 09:20:30浏览次数:1  
标签:文件 扩展名 System 过滤 file using txt 特定

在C#中,DirectoryInfo类的GetFiles方法本身并不直接支持通过参数来过滤多种类型的文件。不过,你可以通过组合多个过滤条件来实现这一功能。例如,你可以首先获取所有文件,然后使用 LINQ(Language Integrated Query)来过滤出你需要的文件类型。

以下是一个示例,展示了如何过滤出特定扩展名的文件(例如 .txt 和 .csv 文件):

csharp复制代码
  using System;
  using System.IO;
  using System.Linq;
   
  class Program
  {
  static void Main()
  {
  // 指定要搜索的目录
  string directoryPath = @"C:\YourDirectoryPath";
   
  // 创建 DirectoryInfo 对象
  DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
   
  // 获取目录中所有文件的信息
  FileInfo[] allFiles = directoryInfo.GetFiles("*.*"); // 获取所有文件
   
  // 使用 LINQ 过滤出 .txt 和 .csv 文件
  var filteredFiles = allFiles.Where(file => file.Extension == ".txt" || file.Extension == ".csv").ToArray();
   
  // 输出过滤后的文件路径
  foreach (var file in filteredFiles)
  {
  Console.WriteLine(file.FullName);
  }
  }
  }

在这个示例中,我们首先使用 GetFiles("*.*") 获取目录中的所有文件,然后使用 LINQ 的 Where 方法过滤出扩展名为 .txt 或 .csv 的文件。

另一种方法是直接使用 Directory.EnumerateFiles 方法,它支持搜索模式,并且比 GetFiles 更加高效,特别是当处理大量文件时。你可以使用多个搜索模式,然后将结果合并:

csharp复制代码
  using System;
  using System.Collections.Generic;
  using System.IO;
  using System.Linq;
   
  class Program
  {
  static void Main()
  {
  // 指定要搜索的目录
  string directoryPath = @"C:\YourDirectoryPath";
   
  // 定义要过滤的文件扩展名
  string[] extensions = { "*.txt", "*.csv" };
   
  // 使用 Directory.EnumerateFiles 获取每个扩展名的文件
  IEnumerable<string> allFiles = extensions.SelectMany(ext => Directory.EnumerateFiles(directoryPath, ext));
   
  // 输出过滤后的文件路径
  foreach (var file in allFiles)
  {
  Console.WriteLine(file);
  }
  }
  }

在这个示例中,我们使用 Directory.EnumerateFiles 方法结合多个搜索模式,并通过 SelectMany 将结果合并成一个集合。这种方法通常比先获取所有文件再过滤更高效,因为它避免了不必要的文件枚举。

标签:文件,扩展名,System,过滤,file,using,txt,特定
From: https://www.cnblogs.com/wzihan/p/18521627

相关文章

  • 基于django的在线购物商城推荐系统 python个性化购物商城推荐系统的设计与开发 爬虫
    基于django的在线购物商城推荐系统python个性化购物商城推荐系统的设计与开发爬虫排行榜可视化数据基于流行度的热点推荐平均加权混合推荐协同过滤推荐大数据机器学习深度学习OnlineShopRecommendPy一、项目简介1、开发工具和使用技术Pycharm、Python3及以上版......
  • Spring常用过滤器(Filter)-SecurityContextHolderAwareRequestFilter
    SecurityContextHolderAwareRequestFilter:使HttpServletRequestWrapper能够感知SecurityContextHolder的过滤器。1.1功能概述:1.1.1SecurityContextHolderAwareRequestFilter通过Wrapper/Decorator模式对HttpServletRequest进行包装,使其具备访问SecurityContextHolder中安全......
  • 毕业设计:电影推荐系统 协同过滤推荐算法 深度学习 Python 爬虫 豆瓣电影 LSTM算法✅
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • 《向量数据库指南》——Milvus Cloud 过滤功能:轻松驾驭大规模数据搜索
    各位向量数据库领域的探索者们,大家好!我是大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,咱们就来聊聊在使用MlivusCloud时,标量过滤这一强大功能是如何发挥作用的,以及如何通过这一功能实现更高效、更精准的向量数据处理。相信我,这不仅仅是一场技术盛......
  • 记录NPOI导出Excel并使用不同颜色标注特定条件相同的行
    一、环境概述开发工具:VisualStudio2022.Net环境:.NetCore6.0相关依赖:NPOI二、基本概述需求要实现导出的数据里如果连续行满足某个条件就用颜色标记,但是标记的区间要用不同颜色区分开,用了双指针,但是是记录了起始位置和偏移量,封装比较屎,这里主要记录一下思想。三、代码实......
  • python毕业设计django基于协同过滤算法的养老新闻推荐网站
    文章目录前言一、项目介绍三、功能介绍四、核心代码五、效果图前言Django基于协同过滤算法的养老新闻推荐网站是一个结合了Django框架和协同过滤推荐算法的养老领域信息服务系统。该系统旨在通过个性化推荐算法,向用户推荐符合其兴趣偏好的养老新闻,以提高用户体验和......
  • OpenCL 实现Sobel边界检测过滤
    1.Sobel边界检测过滤器        Sobel算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。 Sobel算子是把图像中每个像素的上下左右四邻域的灰度值加权差,在边缘处达到极值从而检测边缘。        在边......
  • CSS中为特定的元素设置背景图片(Top1,Top1,Top3)
    &:nth-child(1).imgspan{background:url(/static/home/hot/top1.png)no-repeat;background-size:100%auto;}上端代码使用了:nth-child()伪类选择器来选择父元素下的特定子元素,并对这些子元素内部的.imgspan设置背景图片和背景尺寸。&:nth-chi......
  • 禁用tomcat缓存过滤器
    <!--去掉tomcat的etag和Last-Modified响应头的过滤器--> <filter> <filter-name>noetag</filter-name> <filter-class>com.epoint.basic.filter.EpointNoETagFilter</filter-class> </filter> <filter-mapping> <f......
  • Nginx 中动态调整 worker 进程绑定到特定 CPU 核心
    在Nginx中动态调整worker进程绑定到特定CPU核心,可以通过以下两种方式实现:###1.使用`auto`参数自动绑定Nginx1.9.10版本引入了`auto`参数,允许Nginx自动将worker进程绑定到可用的CPU上。这种方式不需要手动指定每个worker进程绑定到哪个CPU核心,Nginx会自......