从C#和System.IO.File.Move执行PowerShell脚本以进行重命名

时间:2016-06-19 18:42:30

标签: c#

在C#中重命名文件的最佳性能,稳定性和首选方法是什么?我说的是相当复杂的正则表达式操作,而不仅仅是简单的替换,甚至可能是数十或数百个文件。

我应该让C#与powershell进行通信并让它使用某些脚本为我重命名,或者我应该以不同的方式执行此操作,如下所示:

System.IO.File.Move("oldfilename", "newfilename");

我很感激一些见解。

缩小我的问题:我应该单独使用C#还是与powershell结合使用以进行广泛的自动文件重命名?

1 个答案:

答案 0 :(得分:1)

我会使用powershell内部函数。我没有看到集成.NET - 函数的好处。

你可以从这样的事情开始:

Get-ChildItem -Path $sourceDir -Filter $format -Recurse | Move-Item -Destination $sourceDir -Whatif 

-Whatif - 参数只会打印出要执行的操作。它对测试参数很有用。

但是如果你想使用C#,请记住将它包装在try-catch中:

try
{
    File.Move("oldfilename", "newfilename"); // Try to move
    Console.WriteLine("Moved"); // Success
}
catch (IOException ex)
{
    Console.WriteLine(ex); // Write error
}