У меня проблема с использованием FileSavePicker.StorageFile заполнен потоком, не заменяя файл
Я всегда думал, что FileSavePicker заменит файл, когда вы выберете имя существующего файла. Он даже спрашивает: «Уже есть файл с этим именем, вы хотите его заменить?» когда вы нажимаете на сохранение.
В следующих шагах моей программы я открываю StorageFile и пишу поток к нему. Моя программа работает очень хорошо, когда новый поток ДОЛЖЕН, чем поток CURRENT, но создаст поврежденные файлы, когда он короче (ну, конечно, оставляя некоторые байты в конце файла, которые не будут перезаписаны или удалены).
Итак, мой вопрос: как мне принудительно заменить механизм замены 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 в качестве параметра для нового класса. Это создает PDF-документ с помощью iTextSharp.
var stream = await saveFile.OpenAsync(FileAccessMode.ReadWrite);
doc = new Document();
writer = new PdfCopy(doc, stream.AsStream());
Так что да. Он отлично работает, когда новый файл больше предыдущего. Когда вы доберетесь до файла save picker, выберите файл и нажмите «Сохранить», даже если вы захотите заменить файл, я подумал, что он фактически заменит файл ...:/
Спасибо за помощь!
Я отредактированный свой титул. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –