Android 文件保存在ASUS transformer SD卡上时在windows资源管理器中不可见
如果我在ASUS Transformer上运行以下代码,那么“testfile.txt”将按照预期在“sd卡”目录的顶层创建Android 文件保存在ASUS transformer SD卡上时在windows资源管理器中不可见,android,windows-7,android-sdcard,Android,Windows 7,Android Sdcard,如果我在ASUS Transformer上运行以下代码,那么“testfile.txt”将按照预期在“sd卡”目录的顶层创建 private void testWriteFile () throws IOException { File sdCard = Environment.getExternalStorageDirectory(); File file = new File(sdCard, "testfile.txt"); FileOutputStream myO
private void testWriteFile () throws IOException
{
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "testfile.txt");
FileOutputStream myOutput = new FileOutputStream(file);
byte buffer[] = {'0','1','2','3','4','5','6','7','8','9'};
myOutput.write(buffer,0,buffer.length);
myOutput.flush();
myOutput.close();
}
我可以使用文件管理器应用程序查看ASUS Transformer上的文件。我可以通过“adb shell”命令从Windows dos框中查看该文件,其权限似乎设置正确。但是,如果我从Windows资源管理器查看目录,“testfile.txt”不在那里。我已经设置了显示隐藏文件和系统文件的选项,但是运气不好
如果我使用ASUS文件管理器应用程序更改“testfile.txt”的名称,那么它将在Windows资源管理器中可见,因此其他应用程序可以使文件在资源管理器中可见
如果我在中兴通讯刀片(Orange San Francisco)上运行相同的代码,那么我可以在Windows资源管理器中看到“testfile.txt”,而无需更改其名称
我还需要做些什么来完成此文件,使其可见吗
此处报告了类似的问题,但在我的案例中,强制关闭不会使文件可见。我已通过以下说明解决了此问题:
MediaScannerConnection.scanFile
(this, new String[] {file.toString()}, null, null);
我不知道为什么华硕和中兴刀片需要这样做。但是,它们与我的电脑的连接方式有所不同,我怀疑这就是原因
中兴通讯刀片显示为USB大容量存储设备,并分配了一个驱动器号。Asus显示为便携式媒体播放器(MTP),未分配驱动器号。我已通过以下说明解决了此问题:
MediaScannerConnection.scanFile
(this, new String[] {file.toString()}, null, null);
我不知道为什么华硕和中兴刀片需要这样做。但是,它们与我的电脑的连接方式有所不同,我怀疑这就是原因
中兴通讯刀片显示为USB大容量存储设备,并分配了一个驱动器号。Asus显示为便携式媒体播放器(MTP),未分配驱动器号。我在android5.x上使用过此功能:
File sdcard = Environment.getExternalStorageDirectory();
//step 1.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://" + sdcard)));
//step 2.
MediaScannerConnection.scanFile(getApplicationContext(),
new String[]{sdcard.getAbsolutePath()
+ "/screenshots/myscreen_" + IMAGES_PRODUCED + ".png"}, null, null);
谢谢。我已经在android5.x上完成了这项工作:
File sdcard = Environment.getExternalStorageDirectory();
//step 1.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://" + sdcard)));
//step 2.
MediaScannerConnection.scanFile(getApplicationContext(),
new String[]{sdcard.getAbsolutePath()
+ "/screenshots/myscreen_" + IMAGES_PRODUCED + ".png"}, null, null);
谢谢。您在哪里拨打MediaScannerConnection电话?关闭文件后?我将MediaScannerConnection调用放在write()之后、flush()和close()之前,这对我也有效!!谢谢!!这似乎与电脑的连接有关……您将MediaScannerConnection呼叫放在哪里?关闭文件后?我将MediaScannerConnection调用放在write()之后、flush()和close()之前,这对我也有效!!谢谢!!这似乎与电脑的连接有关。。。