2017-12-04 12 views
0

こんにちは仲間の開発者です。私はここで多くを読んできましたが、私の問題の解決策は見つけられません。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ではなく、実際にはわかりません。あなたに解決策があったらいいと思います。お気軽に質問してください

+0

'else { Log.d(" Mati "、" Old File does not exist "); } '。もしそうなら、続けなさい。それはすべきです。 'else { Log.d(" Mati "、"古いファイルは存在しません ");戻る; } ' – greenapps

+0

' imageFile.renameTo(imgFinalName); '。戻り値を確認してください! 'if(!imageFile.renameTo(imgFinalName)){トースト(......); return;} '。 – greenapps

+0

あなたは 'imageFile.getAbsolutePath())'の値を記録/伝えませんでした。 – greenapps

答えて

0

Androidスタジオをオフにしてスリープ状態にしたかったように、私はSimpleDateFormatについて考えました。

ファイル名でわかるように、その:

SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss"); 
String format = s.format(new Date()); 

私はここにそれを変更:

SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHHmmss"); 
String format = s.format(new Date()); 

そして、それは動作します。 「 - 」、「_」、「:」はアンドロイド8.1で動作することに注意してください。 これらのオプションは今後追加される予定です。とにかく、どんなに愚かな間違いですが、私はそれを見つけてうれしいです。おじゃまします。

関連する問題