在API 30中,可以使用以下方法重命名文件:
File类提供了renameTo()方法,可以重命名文件。下面是一个示例代码:
File file = new File("/sdcard/oldfile.txt"); File newFile = new File("/sdcard/newfile.txt"); if (file.renameTo(newFile)) { Log.d("FileRename", "File renamed successfully"); } else { Log.d("FileRename", "File renaming failed"); }
在API 30中,Google推荐使用SAF来访问外部存储。以下是使用SAF重命名文件的示例代码:
private static final int REQUEST_CODE_RENAME_FILE = 1001;
private void renameFile() { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult(intent, REQUEST_CODE_RENAME_FILE); }
@Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_RENAME_FILE && resultCode == RESULT_OK) {
Uri treeUri = data.getData();
DocumentFile oldFile = DocumentFile.fromSingleUri(this, Uri.parse("/sdcard/oldfile.txt"));
DocumentFile newFile = DocumentFile.fromTreeUri(this, treeUri).createFile(null, "newfile.txt");
oldFile.renameTo(newFile.getName());
}
}
注意,使用SAF重命名文件需要用户授权访问外部存储。
以上两种方法均可在API 30中使用,具体方法应根据实际情况选择。