Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b916d8ad authored by Narayan Kamath's avatar Narayan Kamath Committed by Gerrit Code Review
Browse files

Merge "Implement FileUtils#contains."

parents 41f40581 d6d1dbac
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
@@ -357,4 +357,26 @@ public class FileUtils {
            }
            }
        }
        }
    }
    }

    /**
     * Test if a file lives under the given directory, either as a direct child
     * or a distant grandchild.
     * <p>
     * Both files <em>must</em> have been resolved using
     * {@link File#getCanonicalFile()} to avoid symlink or path traversal
     * attacks.
     */
    public static boolean contains(File dir, File file) {
        String dirPath = dir.getAbsolutePath();
        String filePath = file.getAbsolutePath();

        if (dirPath.equals(filePath)) {
            return true;
        }

        if (!dirPath.endsWith("/")) {
            dirPath += "/";
        }
        return filePath.startsWith(dirPath);
    }
}
}