使用 Adob​​e 打开 PDF 可以正常工作,但我收到一条消息“您要替换该文件吗?

Opening PDF with Adobe works but I have a message "do you want to replace that file ?

我想打开一个 PDF 文件。如果我选择 PDF Reader,它工作正常。 如果我选择 Adob​​e Reader,我会收到一条消息:"letter.pdf already exists. Do you want to replace that file ?"

如果我点击是,它工作正常..如果我点击否,它也工作正常!那么为什么我会收到这条消息?

这是我的代码。一开始,我试过这个

            // Access local storage
            IStorageFolder local = ApplicationData.Current.LocalFolder;

            IStorageFile storageFile = await local.CreateFileAsync("letter.pdf", CreationCollisionOption.ReplaceExisting);
            using (Stream stream = await storageFile.OpenStreamForWriteAsync())
            {
                await stream.WriteAsync(document, 0, document.Length);
            }

            IStorageFile courrier = await local.GetFileAsync("letter.pdf");
            // Launch 
            var success = await Launcher.LaunchFileAsync(courrier);

如果该文件已经存在,我修改了我的代码以将其删除,以确保只有一个文件可以打开。

            // Access local storage
            IStorageFolder local = ApplicationData.Current.LocalFolder;

            if (await local.GetFileAsync("letter.pdf") != null)
            {
                IStorageFile tmp = await local.GetFileAsync("letter.pdf");
                await tmp.DeleteAsync(StorageDeleteOption.PermanentDelete);
            }

            IStorageFile storageFile = await local.CreateFileAsync("letter.pdf", CreationCollisionOption.ReplaceExisting);

            using (Stream stream = await storageFile.OpenStreamForWriteAsync())
            {
                await stream.WriteAsync(document, 0, document.Length);
            }

            if (storageFile!= null)
            {
                var success = await Launcher.LaunchFileAsync(storageFile);
                return success;
            }

所以我有这个代码,但我仍然有消息,只有 Adob​​e.. 谁能解释一下? 非常感谢!

文件存储在 phone 上,而不仅仅是在应用程序本地。为了在 adobe 中阅读它,它会自动将副本移动到公共文件夹区域。

因此,那里已经有一个 letters.pdf 文件,即使您将它从本地存储中删除也是如此。

你不能(也不应该)假设用户想要从他们的 phone override/delete letters.pdf,所以弹出窗口需要保留。

好消息是,无论他们选择哪个选项,他们仍会读取您希望他们打开的文件