我尝试为应用程序创建一个函数,以便在作业的最后阶段自动复制特定文件。这里唯一的问题是复制位置是受保护的共享驱动器并使用单独的登录而不是由活动目录验证,所以我必须做一些变通方法来使File.Copy()工作。我的解决方法是调用内置的net.exe实用程序并传递指向共享驱动器的命令行参数以打开与驱动器的连接,然后使用File.Copy()获取它需要的文件删除连接。手头的问题是,这在我的计算机上工作得很好但是当团队中的其他人运行相同的程序时,登录失败:未知的用户名或密码错误"被扔了。由于用户名和密码是静态的而且没有被更改,并且团队中的每个人都拥有相同的网络权限,因此我有点失落,因为这会发生这种情况。以下是我用来执行此操作的WPF / C#代码:
try
{
string mrdfDropPath = @"dropPathHere";
string MRDFPath = @"storePath\test.xml";
string command = @"use " + mrdfDropPath + @" /user:CORP\Username Password";
Process.Start("net.exe", command);
File.Copy(MRDFPath, mrdfDropPath + "test.xml");
string command2 = @"use " + mrdfDropPath + @" /delete";
Process.Start("net.exe", command2);
StreamWriter writer = new StreamWriter(@"logPath\log.txt", true);
writer.WriteLine(mrdfDropPath + "test.xml" + "," + File.GetLastWriteTime(MRDFPath).ToString());
writer.Close();
}
catch (Exception e)
{
StreamWriter writer = new StreamWriter(@"logPath\log.txt", true);
writer.WriteLine(e.Message);
writer.Close();
}
就像我说的那样,在调试期间以及运行应用程序时,它按预期工作,但对于其他任何人来说,它都会抛出错误。