我被要求创建一个程序来打开任何文件及其相关的应用程序(例如,word 中的 docx,记事本中的 txt 等)。这是我的代码:
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
foreach (string path in ofd.FileNames)
{
FileInfo fi = new FileInfo(path);
ListViewItem lvi = new(fi.Name);
lvi.SubItems.Add(path);
listView1.Items.Add(lvi);
System.Diagnostics.Process.Start(@"c:\textfile.txt");
System.Diagnostics.Process.Start(@"c:\image.jpg");
System.Diagnostics.Process.Start(@"c:\document.pdf");
}
然而,这个错误不断出现
System.ComponentModel.Win32Exception: '尝试启动进程 'c: extfile.txt' 时发生错误,工作目录位于 \Debug et6.0-windows'。系统找不到指定的文件。'
我正在使用 c# WinForms。如果不包含 system.diagnostics.process.start,则所选文件可以毫无问题地显示到列表视图控件中。但我真正需要的是让文件在默认应用程序中弹出并显示
我试过了
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Directory.SetCurrentDirectory(exeDir);
但我不认为工作目录是问题所在