次のコードを使用します。
final File newFile = new File("/mnt/sdcard/test/");
newFile.mkdir(); // if I use mkdirs() result is the same
そして、空のファイルが作成されます! なんで?
構造内の各フォルダーを作成する場合を除き、mkdirs() は使用しません。文字列の末尾に余分なスラッシュを追加しないようにして、それが機能するかどうかを確認してください。
例えば
final File newFile = new File("/mnt/sdcard/test");
newFile.mkdir();
ファイルのすべてのディレクトリが存在することを確認する必要があるが、ファイルパスしかない場合-私はそうします
new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs();
まず第一に、"/mnt/sdcard/test" でファイル パスを使用しないでください。一部の Android フォンで問題が発生する可能性があります。代わりに使用してください:
public final static String APP_PATH_SD_CARD = "/Test";
String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD;
ダッシュを追加したため、空のファイルが作成されます。
パスを取得したので、次のコードを使用します。
try {
File dir = new File(fullPath);
if (!dir.exists()) {
dir.mkdirs();
}
}
catch(Exception e){
Log.w("creating file error", e.toString());
}
使ってみて
String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/";
File file=new File(rootPath);
if(!file.exists()){
file.mkdirs();
}