Browse Source

Support default extension

pull/11085/head
Max Katz 4 years ago
parent
commit
a6cd15bfdb
  1. 3
      src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs
  2. 5
      src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

3
src/Avalonia.Base/Platform/Storage/FileIO/StorageProviderHelpers.cs

@ -50,7 +50,8 @@ internal static class StorageProviderHelpers
}
}
public static string NameWithExtension(string path, string? defaultExtension, FilePickerFileType? filter)
[return: NotNullIfNotNull(nameof(path))]
public static string? NameWithExtension(string? path, string? defaultExtension, FilePickerFileType? filter)
{
var name = Path.GetFileName(path);
if (name != null && !Path.HasExtension(name))

5
src/Browser/Avalonia.Browser/Storage/BrowserStorageProvider.cs

@ -6,6 +6,7 @@ using System.Runtime.InteropServices.JavaScript;
using System.Threading.Tasks;
using Avalonia.Browser.Interop;
using Avalonia.Platform.Storage;
using Avalonia.Platform.Storage.FileIO;
namespace Avalonia.Browser.Storage;
@ -64,7 +65,9 @@ internal class BrowserStorageProvider : IStorageProvider
try
{
var item = await StorageHelper.SaveFileDialog(startIn, options.SuggestedFileName, types, excludeAll, PreferPolyfill);
var suggestedName =
StorageProviderHelpers.NameWithExtension(options.SuggestedFileName, options.DefaultExtension, null);
var item = await StorageHelper.SaveFileDialog(startIn, suggestedName, types, excludeAll, PreferPolyfill);
return item is not null ? new JSStorageFile(item) : null;
}
catch (JSException ex) when (ex.Message.Contains(PickerCancelMessage, StringComparison.Ordinal))

Loading…
Cancel
Save