我有一些特定于应用程序的文件存储在内部存储器的目录中。我希望用户能够通过对话框重命名这些文件。我正在使用以下代码来重命名用户选择的文件:
final File dir = context.getDir(UtilityFuctions.USER_LISTS,
Context.MODE_PRIVATE);
final File myFile = new File(dir, filename);
AlertDialog.Builder fileDialog = new AlertDialog.Builder(context);
fileDialog.setTitle("Rename file");
// Set an EditText view to get user input
final EditText input = new EditText(context);
input.setText(filename);
fileDialog.setView(input);
fileDialog.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String fileName = input.getText().toString();
myFile.renameTo(new File(dir,filename));
UtilityFuctions.createToast(context, "file rename successfully", 0);
}
}
});
fileDialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
dialog.dismiss();
}
});
fileDialog.create();
fileDialog.show();
但是上面的代码不起作用并且文件没有获得新名称。我猜renameTo对此不起作用,它只适用于外部存储器。我有一个解决方案,我可以用新名称复制现有文件并删除旧文件,但这会消耗资源,我不想这样做。如果我做错了什么,请帮助我..