Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文件共享Xamarin.forms中获取原始文件名_C#_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

C# 在文件共享Xamarin.forms中获取原始文件名

C# 在文件共享Xamarin.forms中获取原始文件名,c#,xamarin,xamarin.forms,xamarin.android,C#,Xamarin,Xamarin.forms,Xamarin.android,我正在尝试在Xamarin.Forms中实现来自其他应用程序的文件共享。 我对安卓系统的实现有一些问题 我指的是行为准则 我需要从文件管理器获取共享文件的原始名称。 有人能帮我吗?这里有一个解决方案,可以通过intent获取共享文件的原始文件名 if (Intent.Action == Intent.ActionSend) { ClipData clip = Intent.ClipData; Uri uri = clip.GetItemAt(0).Uri; ICu

我正在尝试在Xamarin.Forms中实现来自其他应用程序的文件共享。 我对安卓系统的实现有一些问题

我指的是行为准则

我需要从文件管理器获取共享文件的原始名称。
有人能帮我吗?

这里有一个解决方案,可以通过intent获取共享文件的原始文件名

if (Intent.Action == Intent.ActionSend)
{
     ClipData clip = Intent.ClipData;
     Uri uri = clip.GetItemAt(0).Uri;

     ICursor returnCursor = ContentResolver.Query(uri, null, null, null, null);
     int nameIndex = returnCursor.GetColumnIndex(IOpenableColumns.DisplayName);

     returnCursor.MoveToFirst();

     var fileName = returnCursor.GetString(nameIndex);
     Toast.MakeText(this,"fileName == " + fileName, ToastLength.Short).Show();
}    

示例:文件和一个文件。

我想知道图像对文件的作用是什么question@bradbury9只是想让它更容易理解。我对这个问题很感兴趣,因为我很快就会在我的应用程序中实现它。。。同意@bradbury9,我认为任何有能力解决这个问题的人都不需要图片来了解你想要实现的目标。但是,我想这也没什么坏处。在我的例子中,Intent.Data是空的,不能计算它的路径。@EijiKimura,你是如何实现“共享”功能的?请发布您的共享
活动
代码。@EijiKimura,我已经更新了我的答案,请检查一下。Shen,我不知道要在哪个文件上编写您的解决方案。我们正在将文件从默认文件管理器共享到我们的应用程序。@EijiKimura,请在您的
MainActivity
中添加上述代码。
if (Intent.Action == Intent.ActionSend)
{
     ClipData clip = Intent.ClipData;
     Uri uri = clip.GetItemAt(0).Uri;

     ICursor returnCursor = ContentResolver.Query(uri, null, null, null, null);
     int nameIndex = returnCursor.GetColumnIndex(IOpenableColumns.DisplayName);

     returnCursor.MoveToFirst();

     var fileName = returnCursor.GetString(nameIndex);
     Toast.MakeText(this,"fileName == " + fileName, ToastLength.Short).Show();
}