【发布时间】:2022-11-03 16:52:01
【问题描述】:
我必须要求用户选择一个位置并使用自定义扩展名 (.tdr) 保存文件。我已将 intent.SetType 设置为 */*,目前我必须保存没有任何扩展名的文件。谁能帮我解决我的问题?
这是我的代码示例
Intent intent = new Intent();
intent.SetType("*/*");
intent.PutExtra(Intent.ExtraAllowMultiple, false);
intent.SetAction(Intent.ActionCreateDocument);
MainActivity.Instance.persistentStorageService.Write("DataToWrite", projectJson);
MainActivity.Instance.StartActivityForResult(Intent.CreateChooser(intent, "Save TRW Project File"), RequestCodeConstants.FilePickerSaveRequestCode);
在 MainActivity.cs
System.IO.Stream output = ContentResolver.OpenOutputStream(data.Data);
var dataToWrite = persistentStorageService.Read("DataToWrite", typeof(string));
var buffer = Encoding.ASCII.GetBytes((string)dataToWrite);
output.Write(buffer, 0, buffer.Length);
output.Close();
result = buffer;
我想以自定义扩展名保存文件。
【问题讨论】:
-
什么样的数据存储在您的文件中?
-
@FreakyAli 文件包含一个长 JSON 字符串
-
所以你总是必须创建一个带有“x”名称和“.tdr”扩展名的新文件,对吧?
-
@FreakyAli 正确。
-
@FreakyAli 我们可以使用 ExtraTitle 传递扩展名,但用户可以在为文件命名时将其删除。如果有像使用 SetType("application/pdf") 保存 pdf 的方法会更好
标签: xamarin xamarin.forms xamarin.android