カメラアプリケーションを作成しています。これにより、画像をキャプチャして特定のフォルダーに保存できますが、このプロセス中に、画像はsdcard/DCIM/CAMERAなどのデフォルトの位置に保存されます。
ファイル名は現在の日付です。ユーザーが保存ボタンをクリックすると、現在の日付が取得され、ファイル名が生成されます。そのため、ファイル名を検出できません。
ファイル名にアクセスする方法、または最新の画像ファイルをプログラムで削除する方法を誰かに教えてもらえますか。
カメラアプリケーションを作成しています。これにより、画像をキャプチャして特定のフォルダーに保存できますが、このプロセス中に、画像はsdcard/DCIM/CAMERAなどのデフォルトの位置に保存されます。
ファイル名は現在の日付です。ユーザーが保存ボタンをクリックすると、現在の日付が取得され、ファイル名が生成されます。そのため、ファイル名を検出できません。
ファイル名にアクセスする方法、または最新の画像ファイルをプログラムで削除する方法を誰かに教えてもらえますか。
ディレクトリからすべてのファイルをオブジェクトとして取得して作業する方法を知っていると思います。File
そこから始めて、このメソッドを使用して、最後に変更されたファイルを取得します。
public static File getLastModifiedFile( File[] allFiles ) [
File result = allFiles[1];
//you cou also use result = null and uncomment the
//other if-statement. It's probably the first idea but in that case you might
//return null while here you'll get an exception which makes debugging easier :)
for( int i = 0; i < allFiles.length; i++ ) {
if( result.lastModified() < allFiles[i].lastModified() ) {
//if( result == null || result.lastModified() < allFiles[i].lastModified() ) {
result = currentFile;
}
]
return result;
}
File documentationを見てください。ここに の説明がありますlastModified()
。
新しい画像ファイルの名前を現在の日付ベースの名前に変更するのが最善の方法だと思います。このコードを使用してファイルの名前を変更できます。ファイルを保存した直後。
File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard,"from.jpg");
File to = new File(sdcard,"to.jpg");
from.renameTo(to);