首页 > 编程语言 >C#中Directory.GetFiles() 函数的使用方法(读取目录中的文件)

C#中Directory.GetFiles() 函数的使用方法(读取目录中的文件)

时间:2024-04-03 15:15:42浏览次数:23  
标签:GetFiles string 文件 C# 获取 Directory path

原文链接:https://blog.csdn.net/qq_35970739/article/details/82887314

C#中Directory.GetFiles(string path , string searchPattern, SearchOption searchOption )

获取path目录中所有文件

一、参数

1、

path

要搜索的目录的相对或绝对路径。此字符串不区分大小写。

2、

searchPattern

与 path 中的文件名匹配的搜索字符串。此参数可以包含有效文本路径和通配符(* 和 ?)的组合(请参见“备注”),但不支持正则表达式。

3、

searchOption

用于指定搜索操作是应包含所有子目录还是仅包含当前目录的枚举值之一。 

SearchOption.TopDirectoryOnly  默认选项,仅包含当前目录

SearchOption.AllDirectories   包含所有子目录

 

二、返回值

Type: System.String[]

指定目录中与指定的搜索模式和选项匹配的文件的完整名称(包含路径)的数组;如果未找到任何文件,则为空数组。

三、实例

1、path使用相对路径

string path = "Assets/model";

string[] files = Directory.GetFiles(path) ;

可通过Directory.GetCurrentDirectory()查看当前路径。

 

2、path使用绝对路径

string path = "D:/UnityDemo/Assets/model"

string[] files = Directory.GetFiles(path)

 

C# Directory.GetFiles()获取多个类型格式的文件

第一种方式
System.IO.Directory.GetFiles()获取多个类型格式的文件
System.IO.Directory.GetFiles("c:\","(*.exe|*.txt)");

第二种方式
var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));

但这种写法应该只有VS2008才支持,VS2005不支持

  directoryinfo 既可以获取到所有文件夹,也可以获取到所有文件;directoryinfo GetDirectories() 是获取指定目录的所有文件夹,directoryinfo GetFiles() 是获取指定目录的所有文件。

  有的时候写代码要获取几种指定类型的文件,例如要获取指定目录的所有视频文件,视频文件有很多种格式,如 rmvb、rm、avi、wav、mkv、mp4 等等,而 directoryinfo GetFiles() 一次只能传递一种格式的参数,所以就得分开获取,在介绍获取方法之前,先看 directoryinfo GetFiles() 的一些基本用法。

 

一、C# directoryinfo getfiles获取所有文件

  如果要获取指定目录下的所有文件,可用以下代码:
 

  /// <summary>
  /// C#获取指定目录下的所有文件
  /// </summary>
  /// <param name="filePath">路径</param>
  private void GetFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.*");//*.*可以不要
  }


  调用方法:GetFiles(@"G:\xq\test");

 

  二、directoryinfo getfiles获取一种指定类型文件

  假如要获取指定目录下所有 .dat 文件,跟方法也一样,只不过把 *.* 改为 *.dat 即可,代码如下:
 

  /// <summary>
  /// C#获取一种指定类型文件
  /// </summary>
  /// <param name="filePath">路径</param>
  private void GetFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.dat");
  }


  调用方法:GetFiles(@"G:\xq\test");

 

  三、directoryinfo getfiles获取多种指定类型文件

  由于 getfiles() 一次只能获到一种类型的文件,所以只能先获取到指定目录下的所有文件,再循环判断每个文件是否是要获取的文件;假如获取指定目录下的所有视频文件,实现代码如下:
 

  /// <summary>
  /// C#获取指定目录下多种指定类型文件
  /// </summary>
  /// <param name="filePath">路径</param>
  private void GetVideoFiles(string filePath)
  {
    DirectoryInfo di = new DirectoryInfo(filePath);
    FileInfo[] afi = di.GetFiles("*.*");
    string fileName;
    IList<string> list = new List<string>();

    for (int i = 0; i < afi.Length; i++)
    {
      fileName = afi[i].Name.ToLower();
      if (fileName.EndsWith(".rmvb") || fileName.EndsWith(".rm") || fileName.EndsWith(".avi") || fileName.EndsWith(".mp4"))
      {
        list.Add(fileName);
      }
    }
  }


  如果不同类型的文件要求不同的操作,把并列的条件改 if(){} else if(){} 或 switch 语句即可。

  调用方法:GetVideoFiles(@"G:\xq\test");

标签:GetFiles,string,文件,C#,获取,Directory,path
From: https://www.cnblogs.com/Dongmy/p/18112713

相关文章

  • feign.net 使用consul服务发现 配置
    所有依赖 <ProjectSdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</Nullable><ImplicitUsings>enable</ImplicitUsings><In......
  • 用JavaScript实现响应式设计的魔法
    在数字世界的迷宫中,响应式设计就像是一把万能钥匙,能打开任何大小屏幕的大门。不论是巨大的桌面显示器,还是袖珍的手机屏幕,响应式设计确保你的网站或应用能在任何设备上都提供优质的用户体验。但如何用JavaScript施展这种魔法呢?让我们一探究竟。使用媒体查询监听器在CSS中,我......
  • 使用JavaScript提升Web应用的安全性
    在构建Web应用时,安全性是一个我们绝不能忽视的重要方面。随着网络攻击手段的日益狡猾和复杂,如何保护我们的应用和用户的数据安全成了每个开发者必须面对的问题。本文将介绍一些常见的Web安全威胁,比如跨站脚本攻击(XSS)、跨站请求伪造(CSRF),以及如何通过使用ContentSecurityPol......
  • vcruntime140.dll没有被指定在windows上运行
    在计算机使用过程中,我们常常会遇到一些错误提示或程序崩溃的情况。其中,vcruntime140.dll是一个重要的动态链接库文件,它对于Windows系统的正常运行起着至关重要的作用。本文将详细介绍vcruntime140.dll文件的属性以及其丢失对Windows系统的影响,和最重要的vcruntime140.dll丢失的......
  • .NET 代理模式(二) 动态代理-DynamicProxy
    前言我们都知道,在.NET中实现动态代理AOP有多种方案,也有很多框架支持,但大多框架的实现原理都是通过Emit配合Activator一起使用,从IL级别上实现动态代理。其实在.NET中有一个更为简单的方案可以实现动态代理,那就是DispatchProxy类。DispatchProxy类DispatchProxy类是.NETCor......
  • Cultural and Economic Decline in New York
     1. Cultural and Economic Decline in New York●  New York has seen a decrease in creative buildings and attractions in architecture, entertainment, music, and sports.●  Compared to other seaport cities, New York no lo......
  • C++11中的正则表达式
    目录regexregex_match函数详解函数原型使用方法基本使用使用std::smatch获取更多信息注意事项regex_search函数详解函数原型使用方法基本使用使用std::smatch获取匹配信息注意事项regex_search和regex_match的区别regexC++11引入了<regex>头文件,它提供了对正则表达式的......
  • DC电源模块的使用注意事项和安全规范
    BOSHIDADC电源模块的使用注意事项和安全规范DC电源模块在电子设备的设计和实验中起到了至关重要的作用。然而,为了确保安全和可靠性,使用DC电源模块时需要注意以下几个方面。 第一,正确选择适合的电源模块。在购买或选择电源模块时,需要考虑所需的电压和电流输出范围。确保电源......
  • GBase 8c配置大小写敏感
    GBase8c配置大小写敏感GBase8c数据库mysql/sqlserver兼容大小写敏感1、对象名(表名、列名等)支持大小些敏感2、数据查询支持大小写模糊查询1、列名支持大小写敏感为满足8c兼容mysql和sqlserver,支持默认列名的大小写。首先需要创建兼容B模式的数据库。--创建数据库CREA......
  • Wpf Combobox display multiple fields columns properties
    <ComboBoxGrid.Row="0"x:Name="cbx"VirtualizingPanel.VirtualizationMode="Recycling"HorizontalAlignment="Stretch"VerticalContentAlignment="Center"FontSize="30"Selec......