Skip to content

FileUtils.moveDir();只能移动文件夹里的文件到目标文件夹,但是源文件夹本身没有移动。 #1383

Open
@mao19951015

Description

@mao19951015

描述 Bug

FileUtils.moveDir();只能移动文件夹里的文件到目标文件夹,源文件夹本身没有移动。
源文件夹只是被删掉了,感觉这样并不符合语义啊。 这样叫FileUtils.moveFilesInDir();会不会更好。

  • AndroidUtilCode 的版本:utilcode:1.30.5
  • 出现 Bug 的设备型号:所有
  • 设备的 Android 版本:所有

相关代码

private static boolean copyOrMoveDir(final File srcDir,
                                     final File destDir,
                                     final OnReplaceListener listener,
                                     final boolean isMove) {
    if (srcDir == null || destDir == null) return false;
    // destDir's path locate in srcDir's path then return false
    String srcPath = srcDir.getPath() + File.separator;
    String destPath = destDir.getPath() + File.separator;
    if (destPath.contains(srcPath)) return false;
    if (!srcDir.exists() || !srcDir.isDirectory()) return false;

    if (!createOrExistsDir(destDir)) return false;    //****感觉这里的参数换成destDir.getPath + "/" + srcDir.getName()会更好*****

    File[] files = srcDir.listFiles();
    if (files != null && files.length > 0) {
        for (File file : files) {
            File oneDestFile = new File(destPath + file.getName());
            if (file.isFile()) {
                if (!copyOrMoveFile(file, oneDestFile, listener, isMove)) return false;
            } else if (file.isDirectory()) {
                if (!copyOrMoveDir(file, oneDestFile, listener, isMove)) return false;
            }
        }
    }
    return !isMove || deleteDir(srcDir);
}

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions