如何在MAUI应用程序中从Android外部存储读取文件



如何在MAUI应用程序中读取/写入android外部存储文件夹中的所有/特定文件?我知道在Xamarin中有本地方法可以做到这一点。安卓,但在这里我正在寻找更现代的抽象方式来实现它。请帮助。

具体来说,我正在寻找一些抽象/API来列出Android平台上的文件。下面的内容将是理想的或类似的-

var files = Directory.GetFiles(<FolderPath>)

任何指针都很有用。非常感谢。

以。txt文件为例。

MainPage.xaml:

...
<VerticalStackLayout>
<Button Text="File"
Clicked="file_clicked"/>
<Button Text="Read_file"
Clicked="Read_file"/>
</VerticalStackLayout>

在mainpage . example .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();
}

这就是我的android手机的工作方式。当你最终将数据写入外部文件时,你可以将其作为内部文件读到笔记本电脑中。把这个算出来。您读取和写入一个sd卡文件。

我不能让这个代码在三星平板电脑上工作。读取外部文件

通过编程编写和读取文件,我只能让它与外部调试器(推和拉adb)一起工作。我找不到任何其他方法来编程从PC到android手机的文件传输。

现在,我只能找到调试方法!!

最新更新