Android 如何存储具有相同编号但只有重复名称的图像,如_01.jpg“;

Android 如何存储具有相同编号但只有重复名称的图像,如_01.jpg“;,android,Android,我正在存储一个名称为数字的图像。如何存储具有相同编号但仅具有“_01.jpg”的图像 更新:我拍了两张相同的照片。第一张图片的名字是“123.jpg”,当我第二次点击同一张图片并保存它时,名字应该是“123_01.jpg”。我怎么做 String s3 = editText.getText().toString(); { Intent chooserIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File f = n

我正在存储一个名称为数字的图像。如何存储具有相同编号但仅具有“_01.jpg”的图像

更新:我拍了两张相同的照片。第一张图片的名字是“123.jpg”,当我第二次点击同一张图片并保存它时,名字应该是“123_01.jpg”。我怎么做

String s3 = editText.getText().toString();
{ 
    Intent chooserIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File f = new File(Environment.getExternalStorageDirectory(), s3 + ".jpg");
    chooserIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
    imagaeToUploadUri = Uri.fromFile(f); 
    startActivityForResult(chooserIntent, CAMERA_PHOTO);
}

您可以使用
exists
方法检查给定文件是否已存在,并使用
while
循环递增计数器以查找下一个可用文件名

下面是一个让你开始的例子

String s3 = editText.getText().toString();

File dir = Environment.getExternalStorageDirectory();
String filename = s3 + ".jpg";

File f;
int c = 0;
while ((f = new File(dir, filename)).exists())   // f is assigned within the loop condition
{
    filename = s3 + "_" + c + ".jpg";
    c++;
}
假设
s3
是“somefile”,这将
f
分配给
somefile.jpg
somefile\u 0.jpg
somefile\u 1.jpg
等,直到找到可用的文件名为止(换句话说,直到
f
不存在)。循环完成后,文件应该可以使用

Intent chooserIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
chooserIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
imagaeToUploadUri = Uri.fromFile(f); 
startActivityForResult(chooserIntent, CAMERA_PHOTO);

为什么不
s3+“_01.jpg”
?您希望另一个img的数字是递增的吗?请您进一步解释一下……Pradeep Deshmukh,不,我不希望它是递增的。我所做的就是把同一张照片拍两次。第一张照片的名字是“123.jpg”,当我第二次点击同一张照片并保存它时,名字应该是“123_01.jpg”Stanly Moses,我所做的就是拍两张相同的照片。第一张图片的名字是“123.jpg”,当我第二次点击同一张图片并保存它时,名字应该是“123_01.jpg”,我该怎么做呢???@Moses欢迎来到StackOverflow。。!!如果答案对你有用,就要养成把它们标记为正确的习惯。这对你们俩都有好处。见: