我在外部存储上创建了文件夹。在设备中这些文件夹是正确创建的,我可以看到并使用它们。现在我想在我的电脑上看到这些创建的文件夹,如果我将它连接到USB。但我无法看到任何创建的文件夹。之后,我使用MediaScannerConnection类进行给定文件夹路径的媒体扫描。之后,我能够看到创建的文件夹,但特定路径上最里面的文件夹无法正常显示。例如假设我创建了3个文件夹(实用),例如我想创建文件夹abc / def / h所以在我的手机的外部存储上比eclipse的文件浏览器中的路径是mnt / shell / emulated / 0 / abc / def / h,在我们的手机中,我们可以在文件管理器内部存储/ abc / def / h中看到它。但问题是在使用MEdia扫描仪我驾驶室看到PC中的文件夹但我创建的最里面的文件夹“h”不像文件夹,它变成4kb的文件而不是文件夹。所以这样如果创建大量文件夹,最内层文件夹不是文件夹的类型,而只是一种文件类型.. 虽然如果我不使用mediascanner并关闭电源并打开电源而不是正常工作意味着打开/关闭电源后我可以正常看到所有创建的文件夹。但我想在创建之后看到创建的文件夹。我的代码如下
public void ReadFileAndMakeFolders(Context context){
File file3;
File file2;
String[] splitedString;
try {
//Attaching BufferedReader to the FileInputStream by the help of InputStreamReader
FileInputStream fis = context.openFileInput("databaseee.txt");
InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
BufferedReader bufferedReader = new BufferedReader(isr);
int i=0;
String inputString;
//Reading data line by line and storing it into the stringbuffer
while ((inputString = bufferedReader.readLine()) != null) {
i++;
splitedString = inputString.trim().split("\\s+");
Toast.makeText(this, splitedString.length+""+ splitedString[1], Toast.LENGTH_SHORT).show();
file2 = new File(splitedString[1]);
file3 = file2.getParentFile();
Log.i("mistake",file3.toString());
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
Toast.makeText(this, state, Toast.LENGTH_SHORT).show();
}
File path = Environment.getExternalStorageDirectory();
File file = new File(path, file3.toString());
if (file.mkdirs()) {
Toast.makeText(this, "created" , Toast.LENGTH_SHORT).show();
}
MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
fis.close();
bufferedReader.close();
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
//Displaying data on the toast
}
答案 0 :(得分:0)
您需要使用MediaScannerConnection.scanFile更新MediaScanner。在https://stackoverflow.com/a/31497971/4419474
检查我的答案是否有类似的问题