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

如何将目录中的.txt与.mp3文件分类存入二维数组?

问题分析与修正方案

你的代码存在几处关键问题:

  • Directory.GetFiles不支持直接传入多搜索模式数组,需分别获取不同类型文件;
  • 二维数组的遍历逻辑错误,二维数组的元素是string类型而非string[,];
  • twoFiles类未定义存储文件的属性,无法承载数据。

以下提供两种实现方案,分别对应二维数组存储和更易维护的自定义类存储:


方案一:使用二维数组存储

public void ListFiles()
{
    string pathDir = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "folderPath");
    
    // 分别获取目录下的.txt和.mp3文件
    string[] txtFiles = Directory.GetFiles(pathDir, "*.txt");
    string[] mp3Files = Directory.GetFiles(pathDir, "*.mp3");
    
    // 创建二维数组:第一行存txt文件,第二行存mp3文件
    int maxCount = Math.Max(txtFiles.Length, mp3Files.Length);
    string[,] filePaths = new string[2, maxCount];
    
    // 填充txt文件到第一行
    for (int i = 0; i < txtFiles.Length; i++)
    {
        filePaths[0, i] = txtFiles[i];
    }
    
    // 填充mp3文件到第二行
    for (int i = 0; i < mp3Files.Length; i++)
    {
        filePaths[1, i] = mp3Files[i];
    }
    
    // 验证示例:遍历二维数组
    for (int row = 0; row < 2; row++)
    {
        for (int col = 0; col < maxCount; col++)
        {
            Console.WriteLine(filePaths[row, col]);
        }
    }
}

方案二:使用自定义类存储(推荐)

先完善TwoFiles类,添加对应属性:

public class TwoFiles
{
    public List<string> TxtFiles { get; set; } = new List<string>();
    public List<string> Mp3Files { get; set; } = new List<string>();
}

再修改文件读取逻辑:

List<TwoFiles> filesList = new List<TwoFiles>();

public void ListFiles()
{
    string pathDir = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "folderPath");
    
    TwoFiles fileGroup = new TwoFiles();
    // 将txt文件批量添加到对应列表
    fileGroup.TxtFiles.AddRange(Directory.GetFiles(pathDir, "*.txt"));
    // 将mp3文件批量添加到对应列表
    fileGroup.Mp3Files.AddRange(Directory.GetFiles(pathDir, "*.mp3"));
    
    filesList.Add(fileGroup);
}

方案说明

  • 二维数组方案适合严格按行列结构存储的场景,若两类文件数量不一致,空余位置会填充null;
  • 自定义类方案结构更清晰,便于后续对两类文件进行单独操作,是更易维护的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:16:13