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

C#指定目录下6个.txt文件重命名问题求助

问题分析与修正方案

先梳理下你代码里的核心问题:

  • 变量名不统一:你定义了var files = ...,但后续循环里用的是fajlok,这会直接导致编译错误;
  • 重命名逻辑错误:用Insert方法是把新名字插入到原文件名的.txt前缀,最终会变成原文件名新名字.txt,完全不符合你“直接替换为数组中名称”的需求。

修正后的完整代码

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string[] asd = { "kutya", "cica", "kacsa", "liba", "kék", "zöld" };
        
        // 第一个目录的重命名操作
        string targetDir1 = @"C:\Users\patri\Desktop\asd";
        string[] fajlok = Directory.GetFiles(targetDir1, "*.txt"); // 仅筛选txt文件,避免误操作
        
        // 先校验文件数量与目标名称数量是否匹配,防止索引越界崩溃
        if (fajlok.Length != asd.Length)
        {
            Console.WriteLine($"错误:第一个目录的txt文件数({fajlok.Length})和目标名称数({asd.Length})不匹配!");
            Console.ReadKey();
            return;
        }
        
        for (int index = 0; index < fajlok.Length; index++)
        {
            // 用Path类安全拼接新路径,避免手动处理字符串的各种坑
            string newFilePath = Path.Combine(targetDir1, $"{asd[index]}.txt");
            File.Move(fajlok[index], newFilePath);
        }
        Console.WriteLine("1. átnevezés megtörtént! (nyomjon meg egy billentyűt)");
        Console.ReadKey();
        
        // 第二个目录的重命名操作
        string targetDir2 = @"C:\Users\patri\Desktop\lul";
        fajlok = Directory.GetFiles(targetDir2, "*.txt");
        
        if (fajlok.Length != asd.Length)
        {
            Console.WriteLine($"错误:第二个目录的txt文件数({fajlok.Length})和目标名称数({asd.Length})不匹配!");
            Console.ReadKey();
            return;
        }
        
        for (int index = 0; index < fajlok.Length; index++)
        {
            string newFilePath = Path.Combine(targetDir2, $"{asd[index]}.txt");
            File.Move(fajlok[index], newFilePath);
        }
        Console.WriteLine("2. átnevezés megtörtént! (nyomjon meg egy billentyűt)");
        Console.ReadKey();
    }
}

关键改动说明

  • 变量名统一:把初始定义的files改成fajlok,和后续循环变量保持一致;
  • 精准筛选文件:用Directory.GetFiles(targetDir, "*.txt")只获取目录下的txt文件,避免误改其他类型文件;
  • 安全路径处理:用Path.Combine生成新路径,比手动拼接字符串更可靠,能自动适配不同系统的路径分隔符;
  • 增加错误校验:提前检查文件数量和目标名称数组长度是否一致,避免出现索引越界异常;
  • 直接替换文件名:不再用Insert做插入操作,直接将数组中的名称拼接.txt作为新文件名,完全实现你要的重命名效果。

内容的提问来源于stack exchange,提问作者Lakatos Márk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:39:29