Skip to content

johnmyleswhite/FileFind.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

File::Find implementation in Julia

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages