我正在尝试制作一个C#应用程序,它将连接到文件共享,写入文件,然后断开连接。
NetUseCmd = "net use t: \\Hostname\Vol /user:UserName SomePass"
System.Diagnostics.Process.Start(NetUseCmd);
Directory.CreateDirectory(DriveLetter + ":/" + DirName);
StreamWriter file = new StreamWriter(DriveLetter + ":/" + FileName);
file.Write(logdata);
file.Close();
System.Diagnostics.Process.Start("net use " + DriveLetter + ": /del");
在第二行,我看到了错误:
System.ComponentModel.Win32Exception was unhandled
Message="The system cannot find the file specified"
Source="System"
ErrorCode=-2147467259
NativeErrorCode=2
StackTrace:
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
[...]
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
我知道错误消息意味着它找不到net命令,但我不明白为什么它找不到它。
2条答案
按热度按时间polkgigr1#
您需要将命令作为第一个参数传递,然后将任何参数作为第二个参数传递给进程。所以:
请参阅documentation以了解更多详细信息。
guicsvcw2#
如果你想给net.exe传递一些参数,你应该使用
Process.Start()
的另一个重载版本:请检查源代码中的双反斜杠(没有@,这是一个转义序列)。