我实际上是在我的应用程序中处理 pdf 文档。我将要读取的 pdf 文件存储在应用程序的本地文件夹中。该文件在整个应用程序中使用,因此我认为该文件在整个应用程序中保持打开状态。当我想用新文件替换文件时,它给了我错误,我认为原因是文件正在使用中。我找不到关闭此文件的任何选项。无论如何要关闭从 pdfDocument 类的 loadFromFileAsync() 方法打开的文件?或者有没有其他方法可以替换正在使用的文件。
var loc = Windows.Storage.ApplicationData.current.localFolder;
var picker = new Windows.Storage.Pickers.FileOpenPicker();
var pdf;
function newFile() {
picker.fileTypeFilter.append(".pdf");
picker.pickSingleFileAsync().then(
function (f) {
f.copyAsync(loc, "main.pdf", Windows.Storage.NameCollisionOption.replaceExisting).done(
function (f1) {
Windows.Data.Pdf.PdfDocument.loadFromFileAsync(f1).then(
function (file) {
pdf = file;
Windows.UI.Popups.MessageDialog("loaded " + pdf).showAsync();
document.getElementById("btn").onclick = newFile;
});
},
function (e) {
Windows.UI.Popups.MessageDialog("Error: " + e).showAsync();
});
});
}
newFile();
名为“main.pdf”的文件存储在应用程序的本地文件夹中。上面的代码重新创建了我的应用程序中出现的问题。因此,在上面的代码中,当应用程序启动时,会调用 newFile() 方法并将本地文件夹中的“main.pdf”文件替换为新的“main.pdf”文件。但是当在应用程序中再次调用 newFile() 方法时,它在替换“main.pdf”文件时给了我一个未指定的错误。
我认为,要替换的文件正在由 PdfDocument 类操作,这是导致错误的原因,因为当我不从 PdfDocument 类的 loadFromFileAsync() 方法加载此文件时, newFile() 方法有效第二次也很好。完成这项工作的方法是什么?