另辟新径实现 Blazor/MAUI 本机交互(二)
NativeApi.cs内部部分类,该类提供了几个与文件操作相关的方法。
get_config() 方法:
public Task<string> get_config() { printerName = Preferences.Default.Get(PrinterNameKey, printerName); return Task.FromResult(printerName); }
[*]该方法从应用程序的首选项中获取打印机名称 (printerName)。Maui 基础 - Preferences 存储和检索应用程序的首选项
[*]使用 Preferences.Default.Get 方法获取存储的打印机名称,如果没有存储,则返回默认值。
[*]返回一个包含打印机名称的任务。
open_file_dialog() 方法:
public async Task<string> open_file_dialog() { //work in ui thread var res = await MainThread.InvokeOnMainThreadAsync(async () => { try { var result = await FilePicker.Default.PickAsync(new PickOptions()); if (result == null) { return ""; } using var stream = await result.OpenReadAsync(); StreamReader reader = new StreamReader(stream); return Convert.ToBase64String(Encoding.UTF8.GetBytes(reader.ReadToEnd())); } catch (Exception e) { var err = e.Message; return err; } }); return res; }
[*]该方法在 UI 线程上运行,打开文件选择对话框。
[*]使用 FilePicker.Default.PickAsync 方法打开文件选择器。
[*]如果用户没有选择文件,返回空字符串。
[*]如果选择了文件,读取文件内容并将其转换为 Base64 编码的字符串。
[*]如果发生异常,返回异常消息。
save_file(string data, string fileName) 方法:
public async Task<string> save_file(string data, string fileName) { try { string targetFile = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, fileName); using FileStream outputStream = File.OpenWrite(targetFile); using StreamWriter streamWriter = new(outputStream); await streamWriter.WriteAsync(data); return $"file path:{targetFile.Replace("\\","\\\\")}"; } catch (Exception e) { var err = e.Message; return err; } }
[*]该方法将给定的数据保存到指定文件名的文件中。
[*]使用 Path.Combine 方法构建目标文件路径,该路径位于应用程序的数据目录中。
[*]使用 File.OpenWrite 方法打开文件流,并使用 StreamWriter 写入数据。
[*]写入完成后,返回文件路径。
[*]如果发生异常,返回异常消息。
这些方法提供了基本的文件操作功能,包括获取配置、打开文件对话框和保存文件
如何在 Preferences 中存储自定义对象?
Maui 基础 - Preferences 存储和检索应用程序的首选项
页:
[1]