Я пытаюсь открыть pdf файл, используя приведенный ниже рабочий код, который я ранее использовал в другом приложении,
но на этот раз я получаю System.Runtime.InteropServices.COMException, когда поток попадает в эту строку: Windows.System.Launcher.LaunchFileAsync(pdffile);
В чем смысл этого исключения и как избавиться от него?
Обратите внимание, что, не заботясь об этом исключении (отключив его),
файл не может быть открыт.
Обратите внимание: файл существует в моей изолированной папке (отмечен с помощью wpowertool),
Я пробовал с двумя разными файлами, поэтому он не должен быть причиной повреждения файлов.
public void openFile(string options)
{
System.Diagnostics.Debug.WriteLine("options: " + options);
string optVal = JsonHelper.Deserialize<string[]>(options)[0];
asyncOpen(optVal);
}
public async Task asyncOpen(string filename)
{
filename = filename.Substring(2, filename.Length - 2);
filename = filename.Replace("//", "/").Replace("/", "\\");
Windows.Storage.StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
Debug.WriteLine("local: " + local.Path);
Windows.Storage.StorageFile pdffile = await local.GetFileAsync(filename);
Debug.WriteLine("pdffile: " + pdffile.Name);
//// Launch the pdf file.
Windows.System.Launcher.LaunchFileAsync(pdffile);
}
этот сообщение MSDN принадлежит мне. Да, файл установлен, и у меня есть программа чтения acrobat.
Обратите внимание, что этот код С# представляет собой плагин phonegap/cordova, который вызывается через javascript в моем гибридном приложении.