You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android平台使用C#打开并读取文本文件

Android(Xamarin.C#)文件选择与读取问题

我目前的代码如下:

Intent intent = new Intent();
intent.SetType("text/plain");
intent.SetAction(Intent.ActionGetContent);
StartActivityForResult(Intent.CreateChooser(intent, "Select file"), 1);
string str = System.Environment.GetFolderPath(?????);

最后一行无法正常运行,我希望实现让设备用户浏览文件夹并打开文件的功能,该功能在Windows平台的C#开发中很简单,但在Android平台遇到了困难。

2023年1月3日:问题仍未解决。我来自Windows C#开发背景,这类操作原本很简单,但在Android平台却行不通。

我尝试了以下几种方式获取文件夹路径:

  • var documents = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
  • var documents = Path.Combine(Xamarin.Essentials.FileSystem.AppDataDirectory);
  • var documents = System.Environment.CurrentDirectorygetExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);

通过这些代码我能看到Documents文件夹中的文件列表,可逐个选择,但大多无法打开;仅少数情况下系统会询问打开应用,此时才能正常打开。

为什么FXTextEdit能在Android上读写文件,而我的应用却无法通过代码实现?我使用C#进行编码。

2023年9月6日:

当我使用如下代码时:

Intent intent = new Intent(Intent.ActionGetContent);
intent.SetType("text/plain");
intent.AddCategory(Intent.CategoryOpenable);
intent.SetAction(Intent.ActionGetContent);
intent.PutExtra("android.content.extra.SHOW_ADVANCED", true);
intent.PutExtra("android.content.extra.FANCY", true);
intent.PutExtra("android.content.extra.SHOW_FILESIZE", true);
StartActivityForResult(Intent.CreateChooser(intent, "Select file"), 0);

我现在能访问Documents文件夹并选择文件,但接下来该怎么做?如何打开这个可读取的文本文件?如何读取文件中的数据?或者如何获取文件大小?

感谢解答。

内容的提问来源于stack exchange,提问作者Ron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:35:20