INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

title: "Recursive directory traversal"
project: "Visual Eiffel Library"
revision: "$Revision: 1.2 $"
copyright: "Copyright (C) 1996-2005 Object Tools Group"
license: "http://visual-eiffel.com/license"
cluster: pool
class RECURSIVE_DIRECTORY_INPUT_STREAM
inherit

INPUT_STREAM [STRING]
end
creation

make,
make_directories,
make_files
feature {NONE}-- Creation

make (dir: DIRECTORY)
-- Create on an object that lists both files and directories
-- in the directory `dir' and its subdirectories (recursively).
require
non_void_dir: dir /= void
ensure
directory_set: directory = dir
is_directory_list: is_directory_list
is_file_list: is_file_list
is_open: is_open

make_files (dir: DIRECTORY)
-- Create on an object that lists only files
-- in the directory `dir' and its subdirectories (recursively).
require
non_void_dir: dir /= void
ensure
directory_set: directory = dir
is_file_list: is_file_list
is_open: is_open

make_directories (dir: DIRECTORY)
-- Create on an object that lists only directories
-- in the directory `dir' and its subdirectories (recursively).
require
non_void_dir: dir /= void
ensure
directory_set: directory = dir
is_directory_list: is_directory_list
is_open: is_open
feature -- Status

directory: DIRECTORY

is_file_list: BOOLEAN

is_directory_list: BOOLEAN

is_open: BOOLEAN
-- Is directory stream open?

item: STRING

end_of_stream: BOOLEAN
-- Are all entries read?
feature -- Status setting

close
-- Stop directory traversal and release
-- associated resources.
feature -- Access

read
-- Read next directory entry.
invariant

non_void_directory: directory /= void
non_void_path_prefix: path_prefix /= void
non_void_recursive_path_prefix: recursive_path_prefix /= void
non_void_reader: reader /= void
non_void_recursive_reader: recursive_reader /= void
non_void_directories: directories /= void
standard_directories: directories.lower = 1
end -- class RECURSIVE_DIRECTORY_INPUT_STREAM

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES