在名称包含空格的文件夹中使用C#处理文件

时间:2010-05-08 17:26:03

标签: c#

有很多C#示例展示了如何操作文件和目录,但它们不可避免地使用不包含空格的文件夹路径。在现实世界中,我需要能够处理名称中包含空格的文件夹中的文件。我编写了下面的代码,显示了我是如何解决问题的。然而它似乎并不是很优雅,我想知道是否有人有更好的方法。

    class Program
{
    static void Main(string[] args)
    {

        var dirPath = @args[0] +  "\\";

        string[] myFiles = Directory.GetFiles(dirPath, "*txt");
        foreach (var oldFile in myFiles)
        {
            string newFile = dirPath + "New " + Path.GetFileName(oldFile);
            File.Move(oldFile, newFile);
        }
        Console.ReadKey();
    }
}

此致 Nigel Ainscoe

1 个答案:

答案 0 :(得分:1)

string newFile = Path.Combine(args[0], "New " + Path.GetFileName(oldFile));

或:

class Program
{
    static void Main(string[] args)
    {
        Directory
            .GetFiles(args[0], "*txt")
            .ToList()
            .ForEach(oldFile => {
                var newFile = Path.Combine(
                    Path.GetDirectoryName(oldFile), 
                    "New " + Path.GetFileName(oldFile)
                );
                File.Move(oldFile, newFile);
            });
        Console.ReadKey();
    }
}