【问题标题】:How to get file content chosen with android Intent如何获取使用 android Intent 选择的文件内容
【发布时间】:2017-11-09 13:21:12
【问题描述】:

我有以下代码可以从 android 文件系统中浏览和选择文件

Intent intent = new Intent(Intent.ActionGetContent);
intent.SetType("*/*");
intent.AddCategory(Intent.CategoryOpenable);
StartActivityForResult(Intent.CreateChooser(intent, "Select a file"),0);

现在我想获取所选文件的内容。我读到了,为此我必须在

中添加一些代码
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
}

但是这段代码永远不会被调用,并且从给出的例子中我不太明白在里面放什么。我要读取的文件是一个 CSV 文件 abd 我想把它的数据放在一个数组中。

【问题讨论】:

  • 修改你的代码为:protected override void OnActivityResult(int requestCode, Result resultCode, Intent data).
  • 谢谢。现在调试进入方法。但是如何获取文件内容。我正在使用 C# (android)。我找到的所有答案似乎都适用于 Java。

标签: android-intent get xamarin.android


【解决方案1】:

当你从android文件系统中选择一个文件时,你可以得到文件的路径,例如:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
    base.OnActivityResult(requestCode, resultCode, data);
    if (requestCode == 0)
    {
        var uri = data.Data;
        string path = GetActualPathFromFile(uri);
        System.Diagnostics.Debug.WriteLine("File path == " + path);        
    }
}

GetActualPathFromFile(uri)方法是从Android.Net.Uri获取实际路径,完整代码可以参考:How to get actual path from Uri xamarin android

获取文件路径后,您可以参考Reading CSV files using C# 获取您的CSV文件内容。

【讨论】:

    猜你喜欢
    • 2013-02-23
    • 2021-03-20
    • 2018-02-24
    • 2022-08-10
    • 1970-01-01
    • 2023-03-27
    • 2020-04-16
    • 2020-03-26
    相关资源
    最近更新 更多