-1

ファイルの完全なパスを含む特定のパスを使用して、SD カードにディレクトリを自動的に作成したいと考えています。パスはサーバーから動的に取得されるため、ディレクトリの名前とディレクトリ構造の深さはわかりません。

例: dir1/dir2/dir3/file1.txt

次のコードを使用しています

createDirectoryIfNotPresent(Environment.getExternalStorageDirectory() + "/"+ mypaths.getNextPath());

どこでの定義

createDirectoryIfNotPresent

private void createDirectoryIfNotPresent(String fileName) {
    File f = new File(fileName);

    if(!f.exists())
        f.mkdirs();
}

ただし、上記のコードは file1.txt のディレクトリも作成します。どうすればこれを回避できますか? ファイル名ではなく、ディレクトリ名のディレクトリを作成したいだけです。

4

1 に答える 1

1

ファイル名に.txtまたはその他の拡張子が含まれているかどうかを確認するだけの簡単な操作を実行できます

if(f.toString.contains(".txt")) {
f.createNewFile();
} else {
f.mkdirs();
}

拡張機能が変更され続ける場合は、正規表現を使用することもできます。

于 2012-09-24T11:14:45.143 に答える