Как заставить метод получения StorageFile.DisplayName систематически исключать FileType в UWP - PullRequest
0 голосов
/ 31 мая 2018

Этот вопрос уже задавался, но не получил ответа, тогда как важно понять, как работает API хранилища в UWP.

WinRT StorageFile DisplayName странное поведение

Я сохраняю файлы в разных форматах (gif и json), поэтому мне нужно отслеживать общий получатель StorageFile.DisplayName, но поведение этого свойства неясно, потому что иногда FileType (.gif или .json)) включен в DisplayNme, а иногда - нет.

Причина такого поведения является целью этого вопроса, и, возможно, я ищу четкий ответ о том, как получить полный контроль над DisplayNameгде мне нужно держать FileType вне первого, не прибегая к манипуляции со строками.

Единственный прогресс, который я сделал, - это возможность воспроизвести эту «ошибку»;действительно, кажется, что FileType всегда включается, когда созданный файл находится в LocalSettings AppData, и не включается, если, например, файл хранится в PictureLibrary.Мой код является тривиальным, он использует

var fileName = "Test.gif";
var settingsFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("SettingsFolder", folderCreationCollisionOption);
var file = await settingsFolder.CreateFileAsync(fileName, fileCreationCollisionOption);

или

var fileName = "Test.gif";
var settingsFolder = await KnownFolders.PicturesLibrary.CreateFolderAsync("SettingsFolder", folderCreationCollisionOption);
var file = await settingsFolder.CreateFileAsync(fileName, fileCreationCollisionOption);

Первый возвращается для file.DisplayName "Test.gif", а второй "Test" по желанию.Однако мне нужно работать в AppData.

1 Ответ

0 голосов
/ 31 мая 2018

StorageFile.DisplayName возвращает понятное имя для файла.В приложениях UWP всегда используйте следующее:

для получения расширения файла:

StorageFile.FileType

Чтобы получить имя файла и его расширение:

StorageFile.Name
...