C# 如何在c中使用cmd将文件从任何目录复制到c驱动器#

C# 如何在c中使用cmd将文件从任何目录复制到c驱动器#,c#,file-io,C#,File Io,我尝试在c:(操作系统)驱动器中复制一个映像文件,但它显示错误wid访问被拒绝,我使用了 string strCmdLine; strCmdLine = @" /c xcopy d:\123.png C:\windows\system32"; Process.Start("CMD.exe", strCmdLine); 您可能没有足够的权限 尝试添加凭据: Process p = new Process(); process.StartInfo.UserName

我尝试在c:(操作系统)驱动器中复制一个映像文件,但它显示错误wid访问被拒绝,我使用了

string strCmdLine;
    strCmdLine = @" /c xcopy d:\123.png C:\windows\system32";
    Process.Start("CMD.exe", strCmdLine);

您可能没有足够的权限

尝试添加凭据:

    Process p = new Process();
    process.StartInfo.UserName = "aaaa";  
    process.StartInfo.Password = "xxxxx";
...
...
此外,请确认:

读取权限:
d:\123.png


对:
C:\windows\system32
的写入权限被拒绝可能是由多种原因造成的,例如用户权限或正在使用的文件。由于命令行似乎正常,我建议检查您的应用程序是否由具有写入C:\Windows\system32权限的Windows用户运行。

您需要以管理员身份运行CMD.exe,请尝试以下操作

        Process p = new Process();
        p.StartInfo.FileName = "cmd.exe";
        p.StartInfo.Verb = "runas";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardInput = true;
        p.Start();

        p.StandardInput.WriteLine(@"/c xcopy d:\123.png C:\windows\system32");

您可以查看显示如何以管理员身份运行程序的帖子。

在cmd shell中尝试相同的参数,并查看它是否成功。b4从代码中尝试。
xcopy
是本机程序,而不是shell内置程序。您不需要通过
cmd
运行它。您真的需要使用命令行吗?已经有几个内置类也可以完成这项工作。如果您想处理可能的异常/故障(尤其是对返回结果下的问题的评估),那么使用命令shell不是很容易。请参阅“为什么要(或需要)将映像放置到C:\windows\system32”中的System.IO命名空间和FileInfo/File类?这不是一个好的/普遍的做法。。。您应该(重新)考虑您的软件需求和体系结构。先生,但如果我们要制作一个应用程序,其中用户浏览自己的图片,然后应用程序将其复制到c:drive,那么如何获得许可?