我正在创建一个相机应用程序。通过这个我能够捕获图像并将其存储到特定的文件夹中。但是在这个过程中,图像被存储在它的默认位置,比如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;
}
查看文件文档。在这里您会找到 的解释lastModified()
。
我认为最好的方法是用当前基于日期的名称重命名新图像文件。您可以使用此代码重命名文件;立即,保存文件后。
File sdcard = Environment.getExternalStorageDirectory();
File from = new File(sdcard,"from.jpg");
File to = new File(sdcard,"to.jpg");
from.renameTo(to);