![](/img/trans.png)
[英]How to read a file from the USB storage on Android with dotnet MAUI?
[英]How to read files from Android external storage in MAUI application
如何从 MAUI 应用程序中的 android 外部存储文件夹读取/写入所有/特定文件。 我知道在 Xamarin.Android 中有一些本地方法可以做到这一点,但在这里我正在寻找更现代的抽象方法来实现它。 请帮忙。
具体来说,我正在寻找一些抽象/API 来列出 Android 平台上的文件。 像下面这样的东西是理想的或类似的-
var files = Directory.GetFiles(<FolderPath>)
任何指针都会有帮助。 非常感谢。
以.txt 文件为例。
主页.xaml:
...
<VerticalStackLayout>
<Button Text="File"
Clicked="file_clicked"/>
<Button Text="Read_file"
Clicked="Read_file"/>
</VerticalStackLayout>
在 MainPage.xaml.cs 中,您可以添加:
//string targetFile = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, "TextFile3.txt");
// Write the file content to the app data directory
private async void file_clicked(object sender, EventArgs e)
{
#if ANDROID
//var docsDirectory = Android.App.Application.Context.GetExternalFilesDir(Android.OS.Environment.DirectoryDocuments);
//File.WriteAllText($"{docsDirectory.AbsoluteFile.Path}/atextfile.txt", "contents are here");
var docsDirectory = Android.App.Application.Context.GetExternalFilesDir(Android.OS.Environment.DirectoryDcim);
File.WriteAllText($"{docsDirectory.AbsoluteFile.Path}/atextfile.txt", "contents are here");
#endif
//using FileStream outputStream = System.IO.File.OpenWrite(targetFile);
//using StreamWriter streamWriter = new StreamWriter(outputStream);
//await streamWriter.WriteAsync("ssss");
}
//read file
private async void Read_file(object sender, EventArgs e)
{
#if ANDROID
var docsDirectory = Android.App.Application.Context.GetExternalFilesDir(Android.OS.Environment.DirectoryDcim);
var a = File.OpenRead($"{docsDirectory.AbsoluteFile.Path}/atextfile.txt");
using StreamReader reader_1 = new StreamReader(a);
var doc = await reader_1.ReadToEndAsync();
await DisplayAlert("content", doc, "OK");
#endif
//using FileStream outputStream_2 = System.IO.File.OpenRead(targetFile);
//using StreamReader reader_2 = new StreamReader(outputStream_2);
//string content_2 = await reader_2.ReadToEndAsync();
//content_2 = content_2.ToUpperInvariant();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.