C#中的系统找不到指定的路径
问题描述:
我打开一个文件,这行代码的程序:C#中的系统找不到指定的路径
Process p = new Process();
p.StartInfo.FileName = @"C:\Users\RandomUser\Documents\Rainmeter\Todo List.lnk";
p.Start();
我得到一个错误“系统找不到指定的路径” 和路径是肯定有效的。
有谁知道如何解决它?
编辑:这工作完全正常,当该文件是一个exe文件。
答
的问题是,程序无法访问”计划文件“(这是快捷方式导致的地方),所以我将应用程序重新安装到”程序文件(x86)“中,并且做到了这一点。
+0
这不是一个答案,因为并不是每个人都能够重新安装应用程序就这样。这就避免了问题,不解决它。 –
答
请尝试以下
Process p = new Process();
p.StartInfo.FileName = @"Todo List.lnk";
p.StartInfo.WorkingDirectory = @"C:\Users\RandomUser\Documents\Rainmeter";
p.Start();
LNK是一个快捷方式,您可以使用此功能来获得的lnk目标路径
Public Shared Function GetLnkTarget(lnkPath As String) As String
Dim shl = New Shell32.Shell()
' Move this to class scope
lnkPath = System.IO.Path.GetFullPath(lnkPath)
Dim dir = shl.[NameSpace](System.IO.Path.GetDirectoryName(lnkPath))
Dim itm = dir.Items().Item(System.IO.Path.GetFileName(lnkPath))
Dim lnk = DirectCast(itm.GetLink, Shell32.ShellLinkObject)
Return lnk.Target.Path
端功能
答
您将需要为使用的start command或cmd /c
后跟该链接作为参数。
Process p = new Process();
p.StartInfo.FileName = "start";
p.StartInfo.Arguments = "\"C:\\Users\\RandomUser\\Documents\\Rainmeter\\Todo List.lnk\"";
p.Start();
或
Process p = new Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = "/c \"C:\\Users\\RandomUser\\Documents\\Rainmeter\\Todo List.lnk\"";
p.Start();
照顾的“长目录名称”,这需要有两个封闭“字。
您确定文件的名称相同吗? –
绝对......我实际上认为它可能是与Windows 10预览相关的东西 – Pett
似乎.lnk不会打开它指向的exe的路径包含ProgramFiles。看到这一点:http://stackoverflow.com/questions/19523419/unable-to-launch-shortcut-lnk-files-from-32-bit-c-sharp-application-when-the-f –