こんにちは仲間の開発者です。私はここで多くを読んできましたが、私の問題の解決策は見つけられません。Android oldFile.renameTo(newFile)は下位のAndroidで動作しません
名前を変更する必要があるカメラインテントの画像ファイルがあります。 重要:Android 8.1でも動作しますが、テスト済みの5.1.1では動作しません。
私は理由は分かりませんが、トラブルメーカーに近づいてきました。 renameTo()
は何もしていないか、少なくとも私は何も知らない。ここで は、コードの一部である:以下のように
imgFinalName = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
format + ";" + lkwNr + ";" + telefonNr + ".jpg");
if (imageFile.exists()){
Log.d("Mati","Old File exists");
}else{
Log.d("Mati","Old File doesn't exist");
}
imageFile.renameTo(imgFinalName);
Log.d("Mati","New Filename: " + imgFinalName.getName());
Log.d("Mati","Path: " + imgFinalName.getAbsolutePath());
if (imageFile.exists()){
Log.d("Mati","Old File exists");
}else{
Log.d("Mati","Old File doesn't exist");
}
if (imgFinalName.exists()){
Log.d("Mati","New File exists");
}else{
Log.d("Mati","New File doesn't exist");
}
ログの結果は以下のとおりです。2017-12-04_21:39:03;235;123123.jpg
パス::/storage/sdcard/Pictures/2017-12-04_21:39:03;235;123123.jpg
古いファイルが
新しいファイル名が存在します古いファイルが存在する
新規ファイルは、あなたが見ることができるように、古いファイルが存在し、その後、私はrenameToメソッドを呼び出して、古いファイルがまだ存在すると、新しいファイルにはない
存在しません。
私が言ったように、それはAndroid 8.1で動作しますが、5.1.1ではなく、実際にはわかりません。あなたに解決策があったらいいと思います。お気軽に質問してください
'else { Log.d(" Mati "、" Old File does not exist "); } '。もしそうなら、続けなさい。それはすべきです。 'else { Log.d(" Mati "、"古いファイルは存在しません ");戻る; } ' – greenapps
' imageFile.renameTo(imgFinalName); '。戻り値を確認してください! 'if(!imageFile.renameTo(imgFinalName)){トースト(......); return;} '。 – greenapps
あなたは 'imageFile.getAbsolutePath())'の値を記録/伝えませんでした。 – greenapps