Java 重命名为不用于重命名文件
我正在尝试重命名应用程序中的图像文件。但代码不起作用。 基本上,我希望用户点击重命名按钮,弹出一个带有编辑文本的警告对话框,用户输入图像的新名称,然后选择重命名选项。这应该重命名该文件,但它不执行任何操作。此外,我没有得到任何错误或例外。但是一个警告,“File.renameTo”的结果被忽略。 我怎么修理它Java 重命名为不用于重命名文件,java,android,android-alertdialog,file-rename,file-management,Java,Android,Android Alertdialog,File Rename,File Management,我正在尝试重命名应用程序中的图像文件。但代码不起作用。 基本上,我希望用户点击重命名按钮,弹出一个带有编辑文本的警告对话框,用户输入图像的新名称,然后选择重命名选项。这应该重命名该文件,但它不执行任何操作。此外,我没有得到任何错误或例外。但是一个警告,“File.renameTo”的结果被忽略。 我怎么修理它 buttonRename.setOnClickListener( new View.OnClickListener(){
buttonRename.setOnClickListener(
new View.OnClickListener(){
public void onClick(View view){
AlertDialog.Builder builder2 = new AlertDialog.Builder(PhotosActivity.this);
builder2.setMessage("Rename File");
final EditText input = new EditText(PhotosActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
builder2.setView(input);
builder2.setPositiveButton(
"Rename",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
File oldName =new File(al_images.get(int_position).getAl_imagepath().get(position));
String string = input.getText().toString();
boolean success = oldName.renameTo(new File(string));
if(!success){
Log.v(TAG,"not renamed");
}
}
});
builder2.setNegativeButton(
"Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert12 = builder2.create();
alert12.show();
}
}
);
您应该首先检查文件是否存在,然后再尝试重命名它,因为:file.renameTo不会引发任何异常,即使调用的对象目标引用了不存在的路径 更好的替代方法是使用java.nioapi来操作文件,因为它提供了与File相同的功能以及更多功能,并且通常表现得更好 你可以写:
Files.move(originalPath, targetPath);
现在,如果originalPath未引用现有路径,将引发异常。在尝试重命名该文件之前,应首先检查该文件是否存在,因为:file.renameTo即使调用的对象目标引用了不存在的路径,也不会引发任何异常 更好的替代方法是使用java.nioapi来操作文件,因为它提供了与File相同的功能以及更多功能,并且通常表现得更好 你可以写:
Files.move(originalPath, targetPath);
现在,如果originalPath不引用现有路径,将引发异常。即使我这样做,它也不会引发任何异常,而且它不工作的toojava.nio可从API 26获得,我正在使用API 15@davidxxx即使我这样做,它也不会引发任何异常,它不工作的toojava.nio可从API 26获得,我使用的是API 15@davidxxx