笔记本电脑通过 USB 看不到外部存储文件

External storage files not visible to laptop over USB

在 Android 应用程序 (API 29) 中,我正在编写一个需要通过 USB 从笔记本电脑读取的文件。它被写入模拟的外部存储。正如预期的那样,在物理设备上的 Android 文件管理器中,我看到文件位于:

Internal Storage > Android > data > com.xxx.myapp > files > Directory Documents >
Exports > Databases > my file.dbf

但是,在连接 USB 的笔记本电脑上,我使用 Android 文件传输(甚至 Android Studio 的设备文件资源管理器)看不到该文件。我确实在以下位置看到了私人文件:

Internal Storage > Android > data > data > com.xxx.myapp > files > ...

在应用设置中启用了存储权限,在开发者设置中启用了 USB 调试。

虽然这显然不是必需的,但我也启用了清单设置 ReadExternalStorage 和 WriteExternalStorage。

我必须怎么做才能让笔记本电脑看到该文件?

我的代码如下(在 Xamarin Android 依赖服务中)。

        public async Task WriteExternalFileFromStreamAsync ( string foldername, string subfoldername, string filename, Stream stream )
        // Writes external file from given stream
        {
            await Task.Run ( () =>
            {
                try
                {
                    // Create folder
                    Context  currentContext = Android.App.Application.Context;
                    Java.IO.File directory = new Java.IO.File ( currentContext.GetExternalFilesDir( "directorydocuments" ).AbsolutePath + "/" + foldername );
                    directory.Mkdir ();

                    // Create subfolder
                    Java.IO.File subdirectory = new Java.IO.File ( currentContext.GetExternalFilesDir( "directorydocuments" ).AbsolutePath + "/" + foldername + "/" + subfoldername );
                    subdirectory.Mkdir ();
                    
                    // Write file
                    string path = Path.Combine ( subdirectory.AbsolutePath, filename );
                    using ( FileStream filestream = new FileStream ( path, FileMode.Create, FileAccess.ReadWrite ) )
                        stream.CopyTo ( filestream );
                }
                catch ( Exception ex )
                {
                    MyUtil.WriteLogFile ( S.Exception, ex.AsStringVal () );
                    throw;
                }
            });
        }

在多次重新启动/重启后,它现在可以正常工作了。对不起。