Android 奇怪的路径更改和遗忘的文件关联

Android 奇怪的路径更改和遗忘的文件关联,android,xamarin.android,file-handling,intentfilter,Android,Xamarin.android,File Handling,Intentfilter,我希望我的应用程序将数据导出到下载目录 要获取下载目录,我使用以下代码 string path=Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath path变量的值为“/storage/simulated/0/Download” 当我将文件保存到Path.Combine(路径,“myfile.ext”)时,文件保存正确 为了

我希望我的应用程序将数据导出到下载目录

要获取下载目录,我使用以下代码
string path=Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath

path
变量的值为
“/storage/simulated/0/Download”

当我将文件保存到
Path.Combine(路径,“myfile.ext”)
时,文件保存正确

为了用我的应用程序打开该文件,我创建了一个带有附加的
意图过滤器的活动
ImportActivity

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:host="*" />
    <data android:mimeType="*/*" />
    <data android:pathPattern="/.*\\.ext" />
    <data android:scheme="file" />
    <data android:scheme="content" />
  </intent-filter>

现在,当我使用文件浏览器(三星的)并导航到下载目录时,我可以看到我的文件。 点击所述文件后,将创建我的
导入性
,并获得文件路径
“/device\u storage/Download/myfile.ext”
(不同目录中的相同文件)。 当我试图获取相应的
FileStream
时,我得到一个异常,指定的文件夹找不到。 这是我的第一个问题

我的第二个问题是,在Windows资源管理器中查看下载文件夹的内容或设备重置后,myfile.ext将无法随我的应用打开。文件关联似乎消失了

如何解决这些问题

当我试图获取相应的FileStream时,会出现一个异常,即找不到指定的文件夹

如果您获得路径表单意图,它将根据不同的文件管理器以
内容的
文件开始

例如,您可以使用路径以
文件开始:/

        if(Intent.DataString != null)
        {
            string path = Intent.DataString;            
            var fs = new FileStream(path.Remove(0, 6), FileMode.Open);
        }
我的第二个问题是,在Windows资源管理器中查看下载文件夹的内容或设备重置后,myfile.ext将无法随我的应用打开


Windows资源管理器是文件管理器应用程序吗?某些应用程序可能无法显示所有可用的应用程序来打开文件,您可以尝试使用其他文件管理器。

我通过
Intent.GetParcelableExtra(Intent.ExtraStream)
获取文件的位置,并将其强制转换为
Uri
对象。我认为我使用该对象的
path
属性获得了正确的路径。我将查看
Intent.DataString
属性的内部。当我在我的windows机器上查看手机的文件系统并打开下载目录时,从那时起,我的应用程序将不会打开该文件。我不必打开文件。只要列出目录中的文件就足够了。