我似乎无法正确理解我的逻辑,如果说“photo.jpg”和“photo1.jpg”存在,我正在尝试将文件重命名为“photo2.jpg”,依此类推。
在我运行代码并拍照的那一刻,只有“photo.jpg”和“photo1.jpg”存在,然后如果拍摄第三张和第四张等照片,它们就会被覆盖。
String photoName = "photo.jpg";
String i = "0";
int num = 0;
File photo = new File(Environment.getExternalStorageDirectory(), photoName);
//for (File file : photo.listFiles()){
while(photo.exists()) {
//if(file.getName().equals("photo.jpg")){
//photo.delete();
num = Integer.parseInt(i);
++num;
String concatenatedNum = Integer.toString(num);
StringBuffer insertNum = new StringBuffer(photoName);
insertNum.insert(5, concatenatedNum);
photoName = insertNum.toString();
photo.renameTo(new File(Environment.getExternalStorageDirectory(), photoName));
//}
}
try {
FileOutputStream fos=new FileOutputStream(photo.getPath());
//MediaStore.Images.Media.insertImage(getContentResolver(), yourBitmap, yourTitle, yourDescription);
//write jpeg to local drive
fos.write(jpeg[0]);
fos.close();
}
catch (java.io.IOException e) {}
感谢您的时间和帮助!
编辑:解决了一半:我意识到我正在覆盖文件而不是创建一个新文件。现在我可以拍摄多张照片,并将它们保存为自己的文件。但是,文件的命名现在是:
- 照片.jpg
- 照片1.jpg
- 照片11.jpg
- photo111.jpg等