Android 到 Windows USB 文件传输文件丢失
Android to Windows USB File Transfer Files Missing
我最近创建了一个将数据记录到外部存储的应用程序(也就是说 myFilePath = Environment.getExternamStorageDirectory().toString() + "mypath/thisCollectionsFolder/myfile.data")。当我通过 airdroid 或 es 文件资源管理器查找文件时,我可以在完成录制后找到它。但是,如果我通过 USB 将 phone 插入 windows PC 并导航至 mypath,我将有一段时间无法在资源管理器中看到 "thisCollectionsFolder"。如果我让 phone "rest" 一段时间,我就能看到 "thisCollectionFolder"。有时 "myfile.data" 在 "thisCollectionFolder" 中可见,有时我必须让 phone "rest" 多等一段时间才能看到它。
我在两台不同的 windows PC 上的 Nexus 6p 和 Pixel 2 运行 android 8 上观察到了这种行为。我试过在文件写入后重新启动 phones,但这并没有使它在资源管理器中可见。请注意,我的应用程序是使用 Xamarin 编写的,并且我使用 dotnet System.IO 类 进行编写。
我的问题如下
- 这是一个已知问题吗?
- 我可以在我的应用程序中做些什么来确保文件在写入后立即可见吗?
谢谢!
- 当 android 设备连接到计算机时,PC 无法读取
设备的磁盘文件数据。它是通过 MTP 服务映射的。
媒体数据库中Android的数据源Provider的映射:
com.android.provider.media/databases/external.db.In这个数据库,
有一个文件 table。在这个 table 中,所有记录都将被映射
MTP 服务到 PC 的文件管理器。
同时,我们在PC端所做的修改,也会先对服务器中的文件table进行修改,然后才会触发系统的磁盘操作。
因此,您可以指定一个文件的路径,然后在您将数据记录到外部storage.Use mtehod MediaScannerConnection
之后由系统扫描并同步到PC。 Xamarin.Android有相应的方法。更详细的可以参考here.
我最近创建了一个将数据记录到外部存储的应用程序(也就是说 myFilePath = Environment.getExternamStorageDirectory().toString() + "mypath/thisCollectionsFolder/myfile.data")。当我通过 airdroid 或 es 文件资源管理器查找文件时,我可以在完成录制后找到它。但是,如果我通过 USB 将 phone 插入 windows PC 并导航至 mypath,我将有一段时间无法在资源管理器中看到 "thisCollectionsFolder"。如果我让 phone "rest" 一段时间,我就能看到 "thisCollectionFolder"。有时 "myfile.data" 在 "thisCollectionFolder" 中可见,有时我必须让 phone "rest" 多等一段时间才能看到它。
我在两台不同的 windows PC 上的 Nexus 6p 和 Pixel 2 运行 android 8 上观察到了这种行为。我试过在文件写入后重新启动 phones,但这并没有使它在资源管理器中可见。请注意,我的应用程序是使用 Xamarin 编写的,并且我使用 dotnet System.IO 类 进行编写。
我的问题如下
- 这是一个已知问题吗?
- 我可以在我的应用程序中做些什么来确保文件在写入后立即可见吗?
谢谢!
- 当 android 设备连接到计算机时,PC 无法读取 设备的磁盘文件数据。它是通过 MTP 服务映射的。
媒体数据库中Android的数据源Provider的映射: com.android.provider.media/databases/external.db.In这个数据库, 有一个文件 table。在这个 table 中,所有记录都将被映射 MTP 服务到 PC 的文件管理器。
同时,我们在PC端所做的修改,也会先对服务器中的文件table进行修改,然后才会触发系统的磁盘操作。
因此,您可以指定一个文件的路径,然后在您将数据记录到外部storage.Use mtehod MediaScannerConnection
之后由系统扫描并同步到PC。 Xamarin.Android有相应的方法。更详细的可以参考here.