Я на самом деле работаю с PDF-документами в моем приложении.Я храню PDF-файл, который нужно прочитать в папке Local приложения.Этот файл используется в приложении, поэтому я думаю, что этот файл остается открытым в приложении.Когда я хочу заменить файл новым, это выдает мне ошибку, и я думаю, что причина в том, что файл используется.Я не могу найти какой-либо вариант, чтобы закрыть этот файл.Есть ли в любом случае закрыть файл, открытый из метода loadFromFileAsync () класса pdfDocument?или есть какой-либо другой способ заменить используемый файл.
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, и это является причиной ошибки, потому что, когда я не загружаю этот файл из метода loadFromFileAsync () класса PdfDocument,Метод newFile () также отлично работает во второй раз.Как сделать эту работу?