【发布时间】:2015-03-06 15:35:44
【问题描述】:
我在使用 FileSavePicker 时遇到问题。
我一直认为,当您选择现有文件的名称时,FileSavePicker 会替换该文件。它甚至会询问“已经有一些具有该名称的文件,您要替换它吗?”当你点击保存时。
在程序的后续步骤中,我打开 StorageFile 并向其写入流。 我的程序工作得很好,当新流比当前流长时,但会创建损坏的文件,当它更短时(当然在文件末尾留下一些不会被覆盖或删除的字节)。
所以我的问题是:如何执行 FileSavePicker 的替换机制?
FileSavePicker filePicker = new FileSavePicker();
filePicker.SuggestedFileName = "Some File Name";
filePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
filePicker.FileTypeChoices.Add("Pdf File", new List<string>(){ ".pdf" });
StorageFile saveFile = await filePicker.PickSaveFileAsync();
然后我会将 SaveFile 作为参数提供给一个新类。使用 iTextSharp 创建一个 pdf 文档。
var stream = await saveFile.OpenAsync(FileAccessMode.ReadWrite);
doc = new Document();
writer = new PdfCopy(doc, stream.AsStream());
是的。当新文件大于以前的文件时,它可以正常工作。 当您进入文件保存选择器时,选择一个文件并单击“保存”它甚至会询问您是否要替换文件,所以我想,它实际上会替换文件...:/
感谢您的帮助!
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# windows-store-apps itextsharp filesavepicker