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