示例#1
0
        private async Task <StorageFile?> DownloadPickerPickSaveFileAsync(CancellationToken token)
        {
            if (SuggestedSaveFile == null)
            {
                var temporaryFolder = ApplicationData.Current.LocalCacheFolder;
                if (!Directory.Exists(temporaryFolder.Path))
                {
                    temporaryFolder.MakePersistent();
                }

                if (string.IsNullOrEmpty(SuggestedFileName))
                {
                    SuggestedFileName = Guid.NewGuid().ToString();
                }

                var extension = FileTypeChoices.Count > 0 ? FileTypeChoices.First().Value[0] : "";

                // The mime type is chosen by the extension, and we cannot reliably send multiple mime type in the browser
                var fileName = SuggestedFileName + extension;
                SuggestedSaveFile = await temporaryFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

                SuggestedSaveFile.ProviderOverride = StorageProviders.WasmDownloadPicker;
            }
            return(SuggestedSaveFile);
        }
 private string[] GetMimeTypes()
 {
     return(FileTypeChoices
            .SelectMany(choice => choice.Value)
            .Select(extension => MimeTypeService.GetFromExtension(extension))
            .Distinct()
            .ToArray());
 }
示例#3
0
 private async Task <StorageFile?> DownloadPickerPickSaveFileAsync(CancellationToken token)
 {
     if (SuggestedSaveFile == null)
     {
         var temporaryFolder = ApplicationData.Current.LocalCacheFolder;
         if (!Directory.Exists(temporaryFolder.Path))
         {
             temporaryFolder.MakePersistent();
         }
         // The mime type is chosen by the extension, and we cannot reliably send multiple mime type in the browser
         var fileName = SuggestedFileName + FileTypeChoices.First().Value[0];
         SuggestedSaveFile = await temporaryFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
     }
     return(SuggestedSaveFile);
 }
示例#4
0
 private string[] GetFileTypes() => FileTypeChoices.SelectMany(x => x.Value.Select(val => val.TrimStart(new[] { '.' }))).ToArray();