10

次のコードを使用します。

final File newFile = new File("/mnt/sdcard/test/");
newFile.mkdir(); // if I use mkdirs() result is the same

そして、空のファイルが作成されます! なんで?

4

4 に答える 4

19

構造内の各フォルダーを作成する場合を除き、mkdirs() は使用しません。文字列の末尾に余分なスラッシュを追加しないようにして、それが機能するかどうかを確認してください。

例えば

final File newFile = new File("/mnt/sdcard/test");
newFile.mkdir();
于 2012-12-19T13:47:49.540 に答える
7

ファイルのすべてのディレクトリが存在することを確認する必要があるが、ファイルパスしかない場合-私はそうします

   new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs();
于 2014-09-25T06:47:43.147 に答える
2

まず第一に、"/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());
}
于 2012-12-19T13:57:01.710 に答える
1

使ってみて

    String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/";
            File file=new File(rootPath);
if(!file.exists()){
file.mkdirs();
}
于 2012-12-19T13:54:02.643 に答える