[编辑]
我尝试从基本目录中的文件夹打开文件。
在解决方案资源管理器中,有一个文件夹“ Docs”和一个pdf文件(tempPDF.pdf)。
那将对应于我的项目文件夹中的一个文件夹。 (例如Project \ Docs),该文件位于保存级别的bin和properties文件夹中。
String assemblyPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
Process proc = new Process();
proc.StartInfo = new ProcessStartInfo()
{
FileName = assemblyPath + "\\Docs\\tempPDF.pdf"
};
proc.Start();
我已经将“生成操作”更改为“资源”,并将“复制到输出目录”更改为“始终复制”。但是,pdf文件不会复制到垃圾箱,程序也无法指定该文件。我清理,构建和重建解决方案。
路径始终指向bin \ Debug文件夹,因为这是可执行文件所在的位置,但是文件位于与bin相同级别的位置。
我可以简单地通过“ Images \ img.png”之类的路径在XAML中指定我的图像,它将相对地找到该图像。
这应该是一个非常简单的问题-单击鼠标即可打开PDF。
[编辑-有答案]
必须将“生成操作”更改为“嵌入式资源”,而不是“资源”(资源仅复制没有文件的空文件夹)。我不知道为什么。
最佳答案
首先,没有针对此的XAML解决方案。没有代码支持,我们无法执行流程。
您显示的URI是相对于当前程序集的。
您可以使用程序集目录路径,然后附加文件的相对路径。
可能是这样的:
String assemblyPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
Process proc = new Process();
proc.StartInfo = new ProcessStartInfo()
{
FileName = assemblyPath + "\\Docs\\somePDF.pdf"
};
proc.Start();
如果要将文档放在应用程序文件夹中,也可以使用该目录路径而不是程序集路径:
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
关于c# - 打开目录文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7203649/