简单代码:
ProcessStartInfo psi = new ProcessStartInfo(path);
psi.UseShellExecute = false;
Process.Start(psi);
如果path = C:\ Users \ Marat \ AppData \ Local \ MyCompany \ Program.exe,那没关系!
但是如果path = C:\ Users \ Marat \ Local Settings \ Application Data \ MyCompany \ Program.exe
获得例外:
System.ComponentModel.Win32Exception(0x80004005):发出了无效的名称请求。请求的名称不能 此时检索
实际上,一切都运转良好,但在某个时刻它开始出现这个错误。
答案 0 :(得分:1)
据我记得Windows 7中的Local Settings文件夹,它是AppData文件夹的链接,主要用于与旧的Windows Vista前应用程序兼容,实际上除非你更改所有者,否则你不能直接访问它那个链接(它是系统),所以这可能就是你收到这个错误的原因。
另一个原因可能是名称中的空格,因为您在开始此过程时未显示构建路径或其内容的方式。