Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有其他方法可以在没有特定位置的情况下打开文件?_C#_Wpf - Fatal编程技术网

C# 有没有其他方法可以在没有特定位置的情况下打开文件?

C# 有没有其他方法可以在没有特定位置的情况下打开文件?,c#,wpf,C#,Wpf,因此,这个应用程序将是一个.EXE文件,并在其他办公室计算机中使用。但有一个问题。如果我打开一个文件,那台特定的计算机将有另一个路径,这样我的代码就无法工作。有没有办法只指定文件夹?我的意思是,比如C:/ApplicationFolder/Hejj.pdf 我希望你能理解我的问题 private void Button_Click_8(object sender, RoutedEventArgs e) { Process.Start(@"C:\Users\Danie\Deskto

因此,这个应用程序将是一个.EXE文件,并在其他办公室计算机中使用。但有一个问题。如果我打开一个文件,那台特定的计算机将有另一个路径,这样我的代码就无法工作。有没有办法只指定文件夹?我的意思是,比如
C:/ApplicationFolder/Hejj.pdf

我希望你能理解我的问题

private void Button_Click_8(object sender, RoutedEventArgs e)
{    
    Process.Start(@"C:\Users\Danie\Desktop\Hejj.pdf");      
}
它应该与.exe文件位于同一文件夹中 放置

您可以使用
Assembly.getExecutionGassembly().Location
获取当前exe的路径


Path.Combine(Assembly.GetExecutingAssembly().Location,“Hejj.pdf”)
将为您提供pdf文件的完整路径

private void Button_Click_8(object sender, RoutedEventArgs e)
{    
    string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory);
    Process.Start(System.IO.Path.Combine(path, Hejj.pdf));      
}
获取桌面目录的路径


GetFolderPath返回该位置的路径。在不同的操作系统上,这些文件夹的位置可以具有不同的值。有关所有可用的目录常量,请参见。

一个
AppData
Users
文件夹位置正是出于此目的。您可以使用文件打开对话框提示用户输入路径吗?@puropoix您能更具体地说明解决方案吗?@DougDawson这很好,但我需要它来打开一个特定的文件按钮被按下,而不是让用户去搜索文件manually@DanielSaggo作为一个人,您是否可以在其他ppl的PC上定位文件而不询问他们,或者是否可以物理访问机器?或者你至少知道它可能在哪几个地方吗?如果不是,那么这不是doable@DanielSaggo复制粘贴我的代码以替换硬编码的pdf路径,您就完成了{Process.Start(path.Combine(Assembly.GetExecutingAssembly().Location,“Hejj.pdf”);像这样或像这样的路径。Combine(Assembly.GetExecutingAssembly().Location,“Hejj.pdf”)@DanielSaggo您将了解它是如何工作的。Path.Combine将为您提供一条路径。如果您想启动一个程序,那么您可以执行Process.start({program Path})。