c#系统找不到指定的路径

时间:2016-11-11 23:20:42

标签: c#

我有一个用这行代码打开文件的程序:

Process p = new Process();
p.StartInfo.FileName = @"C:\Users\RandomUser\Documents\Rainmeter\Todo List.lnk";
p.Start();

我收到的错误是"系统无法找到指定的路径" 并且路径有效肯定。

有谁知道如何修复它?

编辑:当文件是exe文件时,它完全正常。

3 个答案:

答案 0 :(得分: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

结束功能

答案 1 :(得分:0)

您需要使用start commandcmd /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();

并照顾"长目录名称"需要用两个"字符。

答案 2 :(得分:0)

问题是该程序无法访问“程序文件”(这是快捷方式所导致的位置),所以我将应用程序重新安装到“程序文件(x86)”中,这就是诀窍。