You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何通过部分文件名查找文件并读取内容到数组

在C#中根据部分文件名查找并读取文件内容

嗨,我来帮你搞定这个需求!其实思路很清晰:先定位到文件所在的目录,用通配符匹配你知道的那部分文件名,找到对应的文件后再把内容读取到数组里。下面是具体的实现步骤和代码示例:

1. 查找匹配的目标文件

首先你需要用Directory.GetFiles()方法来搜索目录里符合条件的文件。这个方法支持通配符*(匹配任意长度的任意字符),你可以根据你知道的部分文件名来构造搜索模式:

  • 如果部分文件名是开头:用"partialName*"
  • 如果部分文件名是结尾:用"*partialName"
  • 如果部分文件名在中间:用"*partialName*"

举个实际的代码例子:

// 你已知的部分文件名
string partialFileName = "0.115237052475505";
// 文件所在的目录路径(换成你实际的目录)
string targetDirectory = @"C:\Your\File\Directory";

// 搜索目录下所有包含该部分文件名的文件(只搜当前目录,不包含子目录)
string[] matchingFiles = Directory.GetFiles(targetDirectory, $"*{partialFileName}*", SearchOption.TopDirectoryOnly);

这里要注意:如果目录里可能有多个匹配的文件,记得先判断数组长度,避免空引用问题。比如可以先打印找到的文件数量,或者让用户选择要处理哪一个。

2. 读取文件内容到数组

找到目标文件后,用File.ReadAllLines()方法就能直接把文件的所有行读取到字符串数组里,非常方便。如果你的文件内容不是按行分隔的,也可以用File.ReadAllText()读取全部文本后再按你的规则拆分到数组中。

完整的示例代码:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string partialFileName = "0.115237052475505";
        string targetDirectory = @"C:\Your\File\Directory";

        try
        {
            string[] matchingFiles = Directory.GetFiles(targetDirectory, $"*{partialFileName}*", SearchOption.TopDirectoryOnly);

            if (matchingFiles.Length == 0)
            {
                Console.WriteLine("没有找到匹配的文件哦!");
                return;
            }

            // 这里默认取第一个匹配的文件,如果有多个,你可以扩展逻辑让用户选择
            string filePath = matchingFiles[0];
            Console.WriteLine($"找到目标文件:{Path.GetFileName(filePath)}");

            // 读取文件内容到字符串数组
            string[] fileContentArray = File.ReadAllLines(filePath);

            // 测试输出数组内容(你可以替换成自己的业务逻辑)
            Console.WriteLine("文件内容如下:");
            foreach (string line in fileContentArray)
            {
                Console.WriteLine(line);
            }
        }
        catch (UnauthorizedAccessException)
        {
            Console.WriteLine("抱歉,没有访问该目录的权限!");
        }
        catch (DirectoryNotFoundException)
        {
            Console.WriteLine("指定的目录不存在!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"发生错误:{ex.Message}");
        }
    }
}

一些额外的小提示

  • 权限问题:务必确保你的程序有访问目标目录的读写权限,否则会抛出权限异常,记得用try-catch捕获处理。
  • 搜索范围:如果需要搜索子目录,把SearchOption.TopDirectoryOnly换成SearchOption.AllDirectories即可。
  • 多个匹配文件:如果找到多个符合条件的文件,你可以遍历matchingFiles数组,逐个处理,或者弹出选择框让用户指定要操作的文件。

内容的提问来源于stack exchange,提问作者SoSo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:08:34