如何获取文件的路径?

时间:2014-12-08 18:48:29

标签: c# android xamarin

我正在尝试获取任何类型文件的路径,但不知道为什么它只适用于图像,任何其他文件扩展名路径始终为null。这是我的代码:

private string GetPath(Android.Net.Uri uri)
    {
        string path;
        string[] projection = new[] { Android.Provider.MediaStore.MediaColumns.Data };
        using (ICursor cursor = ManagedQuery(uri, projection, null, null, null))
        {
            if (cursor != null)
            {
                int columnIndex = cursor.GetColumnIndexOrThrow(Android.Provider.MediaStore.MediaColumns.Data);
                cursor.MoveToFirst();
                path = cursor.GetString(columnIndex);                    
            }
        }
        return path;
    }

我做错了什么或者还有其他办法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

Uri有一个函数getPath(),它的调用方式如下:

uri.getPath()

您可以将其强制转换为字符串。

正如这篇文章所建议的那样:

Convert file: Uri to File in Android

修改

在Xamarin中,此功能不存在。

根据这篇文章,它应该很容易:

Android File Path (Xamarin)

它使用Xamarin的官方文档:

http://developer.xamarin.com/recipes/android/other_ux/pick_image/

答案 1 :(得分:0)

感谢这个天才ryupold,有一个解决方案

https://gist.github.com/ryupold/fe38e5acbe1586681e27