Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# Android-调用Environment.ExternalStorageDirectory以显示;“我的档案”;设备上的视图_C#_Android_Xamarin_Xamarin.android - Fatal编程技术网

C# Android-调用Environment.ExternalStorageDirectory以显示;“我的档案”;设备上的视图

C# Android-调用Environment.ExternalStorageDirectory以显示;“我的档案”;设备上的视图,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我正在使用我的应用程序中的文件资源管理器功能。用户单击一个按钮,然后可以浏览设备存储上的文件。我当前能够在列表视图上显示sd卡上的文件,没有任何问题。我首先检查对环境.ExternalStorageDirectory的调用是否是有效路径。如果是,然后,我将所选文件(要显示)设置为设备的sd卡。此时,它的内容将填充到列表视图中。不过,我希望用户更熟悉一些 通常,当您在android设备上单击“我的文件”时,它会显示除sd卡之外的其他外部存储组件。这是我想要实现的。我想在任何android设备上打开

我正在使用我的应用程序中的文件资源管理器功能。用户单击一个按钮,然后可以浏览设备存储上的文件。我当前能够在列表视图上显示sd卡上的文件,没有任何问题。我首先检查对
环境.ExternalStorageDirectory
的调用是否是有效路径。如果是,然后,我将所选文件(要显示)设置为设备的sd卡。此时,它的内容将填充到列表视图中。不过,我希望用户更熟悉一些

通常,当您在android设备上单击“我的文件”时,它会显示除sd卡之外的其他外部存储组件。这是我想要实现的。我想在任何android设备上打开“我的文件”管理器,然后在文件或文件夹上选择,并返回所选项目的路径

android的文件管理器是否有一个已知路径,即“我的文件”?下面是代码的一部分

public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {

            bool externalStorageState = isExternalStorageWritable ();
if (!string.IsNullOrWhiteSpace (initialDirectory) && IsValidFile (initialDirectory)) {
            selectedFile = new File (initialDirectory);
        } else {

if (externalStorageState) {

                selectedFile = Environment.ExternalStorageDirectory;

            } else {

                Toast.MakeText (Activity, "External storage not available " , ToastLength.Long).Show ();

            }

        }

        return view;
    }

/* Checks if external storage is available for read and write */
    public bool isExternalStorageWritable() {
        string state = Environment.ExternalStorageState;
        if (Environment.MediaMounted.Equals(state)) {
            return true;
        }
        return false;
    }
这是我的文件屏幕截图

单击我的文件后。这是我想要实现的

你想获得什么仍然不清楚。您希望在应用程序中包含哪些元素/文件/文件夹?在“我的活动”中有一个浏览按钮。当前,当用户单击该按钮时,他们看到sd卡内容上方的第三个图像,因为这就是我目前设置的方式。显示的初始路径由设备上存在的存储类型决定,因为有些设备没有sd卡。因此在上面的代码中,我检查该路径是否为空或无效。如果是有效路径,将显示其内容。如果无效,则显示Environment.ExternalStorageDirectory的内容。这很好,但简而言之,我希望显示的初始目录是My Files(第二幅图像)@Arttur Shamstudinov,我想在任何android设备上打开“我的文件”,可以选择一个文件夹或文件,而无需打开阅读。只需选择它并返回所选文件的路径/folderI think“我的文件”是一个自定义应用程序,无法获得完全相同的项目列表。实现目标的唯一方法是手动复制此界面。好的@ArturShamsutdinov感谢您的反馈。我看看该怎么做