使用C#中的cmd将文件从一个目录复制到另一个目录

时间:2018-11-13 14:33:06

标签: c# cmd

我需要将文件从一个目录复制到另一个目录,然后对该文件执行某些操作。我需要使用cmd而不是File.Copy()复制它,因为我需要将复制作为ProcessStartInfo的一部分来完成。

3 个答案:

答案 0 :(得分:3)

您可以使用此代码并更改startInfo.Arguments,但/C应该是!

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new 
System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C copy example.txt backup.txt";
process.StartInfo = startInfo;
process.Start();

答案 1 :(得分:2)

您可以创建一个bat文件来复制一个或多个文件(使用*)。然后执行批处理文件。

        string batFileName = @"C:\{filePath}\copy.bat";
        System.IO.File.WriteAllText(batFileName, @"copy {fileName}.{extension} {destination-filePath}");
        System.Diagnostics.Process.Start(batFileName);

答案 2 :(得分:0)

我能够使用DOS Copy语法和此Stack Overflow QA来表达此答案 Start cmd window and run commands inside

var startInfo = new ProcessStartInfo {
    FileName = "cmd.exe",
    RedirectStandardInput = true,
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};

var process = new Process {StartInfo = startInfo};
process.Start();
process.StandardInput.WriteLine(@"copy c:\Source\Original.ext D:\Dest\Copy.ext");
process.StandardInput.WriteLine("exit");
process.WaitForExit();