重命名 android 中的连续文件夹和文件
Renaming successive folders and files in android
我在 a/b/c.txt 位置有一个文件。我想将此文件移动到位置 d/e/f.txt。我想将 folder/directory a 重命名为 d,b 重命名为 e,并将文件 c.txt 重命名为 f.txt。如何操作这在 android?
public void moveFile(View view) {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "a" + File.separator + "b" + File.separator + "c.txt");
if (file.exists()) {
boolean res = file.renameTo(new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + File.separator + "d" + File.separator + "e" + File.separator + "f.txt"));
Toast.makeText(MainActivity.this, String.valueOf(res), Toast.LENGTH_SHORT).show();
}
}
当您说“我想将 folder/directory a 重命名为 d,b 重命名为 e,文件 c.txt 重命名为 f.txt 时,您的方向非常正确。”您只需一次重命名一个目录并分别重命名文件本身:
String externalStorageDirAbsPath = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(externalStorageDirAbsPath + File.separator + "a" + File.separator + "b" + File.separator + "c.txt");
if (file.exists()) {
// first rename a to d
boolean res = new File(externalStorageDirAbsPath + File.separator + "a")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d"));
if (res) {
// rename b to e
res = new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "b")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e"));
if (res) {
// rename c.txt to f.txt
res = new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e" + File.separator + "c.txt")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e" + File.separator + "f.txt"));
}
}
Toast.makeText(MainActivity.this, String.valueOf(res), Toast.LENGTH_SHORT).show();
}
我已经在 Mac OS X 上测试了代码的中心部分。我还没有在 Android 上测试过。如果手译回Android代码有错别字,希望大家指正。
而不是 File
class 你可能想看看更新的 java.nio.file
包,Path
class 可能会给你一点方便在这里,但我认为您仍然需要一次重命名一个目录并分别重命名文件,就像这里一样。
我在 a/b/c.txt 位置有一个文件。我想将此文件移动到位置 d/e/f.txt。我想将 folder/directory a 重命名为 d,b 重命名为 e,并将文件 c.txt 重命名为 f.txt。如何操作这在 android?
public void moveFile(View view) {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "a" + File.separator + "b" + File.separator + "c.txt");
if (file.exists()) {
boolean res = file.renameTo(new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + File.separator + "d" + File.separator + "e" + File.separator + "f.txt"));
Toast.makeText(MainActivity.this, String.valueOf(res), Toast.LENGTH_SHORT).show();
}
}
当您说“我想将 folder/directory a 重命名为 d,b 重命名为 e,文件 c.txt 重命名为 f.txt 时,您的方向非常正确。”您只需一次重命名一个目录并分别重命名文件本身:
String externalStorageDirAbsPath = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(externalStorageDirAbsPath + File.separator + "a" + File.separator + "b" + File.separator + "c.txt");
if (file.exists()) {
// first rename a to d
boolean res = new File(externalStorageDirAbsPath + File.separator + "a")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d"));
if (res) {
// rename b to e
res = new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "b")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e"));
if (res) {
// rename c.txt to f.txt
res = new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e" + File.separator + "c.txt")
.renameTo(new File(externalStorageDirAbsPath + File.separator + "d" + File.separator + "e" + File.separator + "f.txt"));
}
}
Toast.makeText(MainActivity.this, String.valueOf(res), Toast.LENGTH_SHORT).show();
}
我已经在 Mac OS X 上测试了代码的中心部分。我还没有在 Android 上测试过。如果手译回Android代码有错别字,希望大家指正。
而不是 File
class 你可能想看看更新的 java.nio.file
包,Path
class 可能会给你一点方便在这里,但我认为您仍然需要一次重命名一个目录并分别重命名文件,就像这里一样。