外部ストレージにフォルダを作成しました。デバイスでは、これらのフォルダーは適切に作成されており、それらを表示して使用できます。PC を USB に接続すると、これらの作成されたフォルダーを PC に表示したいのですが、作成されたフォルダーのいずれも表示できませんでした。その後、特定のフォルダーパスのメディアスキャンに MediaScannerConnection クラスを使用しました。その後、作成されたフォルダーを表示できますが、特定のパスの最も内側のフォルダーが正しく表示されません。たとえば、3つのフォルダーを(実用的に)作成し、たとえば、電話の外部ストレージにフォルダーabc/def/hを作成したいとします。Eclipseのファイルエクスプローラーのパスはmnt/shell/emulated/0/abc/def/ですh で、携帯電話では、ファイル マネージャーの内部ストレージ/abc/def/h で確認できます。しかし、問題はMEdia Scannerを使用した後、PCのフォルダーが表示されますが、最も内側のフォルダー「h」です 私が作成したファイルは、フォルダのように似ておらず、フォルダではなく4kbのファイルになります。このように、たくさんのフォルダーを作成する場合、最も内側のフォルダーはファイルフォルダーのタイプではなく、ファイルのみのタイプです..メディアスキャナーを使用せず、電話の電源をオフにして電源をオンにすると、適切に機能するよりも電源が入った後を意味しますon/off 作成されたフォルダはすべてきちんと表示されます。しかし、私は作成直後に作成されたフォルダを見たい.私のコードは次のとおりです
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
}