使用 Adobe 打开 PDF 可以正常工作,但我收到一条消息“您要替换该文件吗?
Opening PDF with Adobe works but I have a message "do you want to replace that file ?
我想打开一个 PDF 文件。如果我选择 PDF Reader,它工作正常。
如果我选择 Adobe 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;
}
所以我有这个代码,但我仍然有消息,只有 Adobe.. 谁能解释一下?
非常感谢!
文件存储在 phone 上,而不仅仅是在应用程序本地。为了在 adobe 中阅读它,它会自动将副本移动到公共文件夹区域。
因此,那里已经有一个 letters.pdf 文件,即使您将它从本地存储中删除也是如此。
你不能(也不应该)假设用户想要从他们的 phone override/delete letters.pdf,所以弹出窗口需要保留。
好消息是,无论他们选择哪个选项,他们仍会读取您希望他们打开的文件
我想打开一个 PDF 文件。如果我选择 PDF Reader,它工作正常。 如果我选择 Adobe 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;
}
所以我有这个代码,但我仍然有消息,只有 Adobe.. 谁能解释一下? 非常感谢!
文件存储在 phone 上,而不仅仅是在应用程序本地。为了在 adobe 中阅读它,它会自动将副本移动到公共文件夹区域。
因此,那里已经有一个 letters.pdf 文件,即使您将它从本地存储中删除也是如此。
你不能(也不应该)假设用户想要从他们的 phone override/delete letters.pdf,所以弹出窗口需要保留。
好消息是,无论他们选择哪个选项,他们仍会读取您希望他们打开的文件