FileFind.jl

File::Find implementation in Julia
Popularity
2 Stars
Updated Last
6 Years Ago
Started In
October 2012

Minimal Implementation of Perl's File::Find in Julia

This package provides a single function, FileFind.find, which:

  • Performs a depth-first search of a directory starting at dir_name
  • Calls a function f on every file/directory encountered along the way
  • Does not follow symlinks to prevent cycles

Usage Examples

require("FileFind")

# The simplest scenario possible
FileFind.find()

# Specifying a directory explicitly
FileFind.find(".")

# Specifying a function explicitly
FileFind.find(fn -> println(isfile(fn)))

# Specifying both a directory and a function explicitly
function file_name_and_size(filename)
  println(strcat(filename, " ", filesize(filename)))
end
FileFind.find(".", file_name_and_size)

# Using a closure to maintain global state across function calls
total_bytes = 0

function total_size(filename)
  global total_bytes
  total_bytes += filesize(filename)
end

FileFind.find(".", total_size)

total_bytes

To Do

  • Implement missing functionality from Perl's File::Find
    • Non-cyclic symlink following
    • Preorder vs. postorder calls to input function