私はtxtファイルを作成し、アンドロイドでsdcardに書き込もうとしています。 「ディレクトリが作成されていません」というエラーが表示されます。 path.mkdirs()
は、必要なディレクトリを作成する必要がありますか?私はをAndroidManifest.xml
に入れていて、アプリのストレージ許可を有効にしています。androidのファイルに文字列を保存できません
Androidのバージョン:7.0
public void addData(View v) {
wordList.add(inAddWord.getText().toString());
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
File file = new File(path, "wordDatabase.txt");
try {
if(!(path.exists() && path.isDirectory())) {
while (!path.mkdir()) {
Log.e("Path", "Directory not created");
}
}
OutputStream os = new FileOutputStream(file);
os.write((inAddWord.getText().toString() + "\n").getBytes());
os.close();
} catch (IOException e) {
e.printStackTrace();
Log.w("ExternalStorage", "Error writing " + file, e);
}
}
また、キャッチが発生したときにユーザーに通知するために、キャッチブロックにトーストを配置する必要があります。 – greenapps
'while(!path.mkdir()){ Log.e(" Path "、" Directory not created ");'。不正なコード。ディレクトリを作成できない場合、アプリはハングします。何度も何度も試してみることは意味がありません。 whileをifに変更します。 mkdirが失敗した場合にユーザーに通知するトーストを追加します。そして戻る。続けるのは意味がありません。あなたのコードを適応させて、ここでも更新してください。 – greenapps
'if(!path.exists()&& path.isDirectory())'。いいえ、 'if(!path.exists())'。 – greenapps