ListFoldersAndFiles
Explanatory Notes
Process Mode For Listing Folders and files:
Two alternative methods for listing of folders and
files, under a given top folder, are covered as follows:
(a) Non-Recursive mode - using Dir() function. Apart from being faster than (b), it has the advantage that there is no extra strain on memory resources (otherwise associated with recursive approach), thus avoiding the risk of potential hang up in case of very large and deep directory tree.
(b) Recursive mode - using FileSystemObject
Display Of Listed Folders And Files:
Each run for listing of folders and files is logged in table
T_ProcessLog. On the viewing form, for the selected ProcessID, path and other details
of topmost folder are displayed at top of the form. Similar details for the
current subfolder are displayed just below the information for
top-most folder.
Subfolders and their files are displayed in adjacent subforms. For the current file, its details (like file type, size, attributes, DtCreated / DtLastModified / DtLastAccessed) are also displayed, apart from a hyperlink to the file itself. The hyperlink label becomes active only for permitted file types. The user can edit the contents of table T_AllowHyperLink for setting such permissions. Three alternative styles of display are provided as follows:
Style A - View Folders and Files In Hierarchical
Chain:
The user can drill down the directory tree by expanding any
of the subfolders which then assumes the role of current main folder, resulting
in display of subfolders and files held by the erstwhile subfolder. This can
be done indefinitely, till the last subfolder at deepest nesting level is
reached.
Similarly, by pressing a command button, the user can move up the directory
tree. The process can be repeated till the current main folder becomes
identical to the top folder (i.e. the original top most folder for which
the listing was generated).
Style B - View All Folders At A Glance - And Their
Files:
For convenient viewing, the folders are sorted as per
nesting level and path. The top-most folder (nesting level: zero) is
highlighted in distinct color. For other folders, nested groups are shaded
alternately in light and dark grey so as to facilitate visual transition from
one nesting level to the other.
Style C - View All Files At A Glance:
For convenient viewing, the files are sorted as per
nesting level and path. Files in top-most folder (nesting level: zero)
are highlighted in distinct color. For other files, nested groups are
shaded alternately in light and dark grey so as to facilitate visual
transition from one nesting level to the other.
General module named basCommDlg, an adaptation from Access Developer's Handbook, has been kindly provided by Bill Mosca.
Note:
(a) While using file system object, all types of folders and files get covered (including System, Volume, Hidden, ReadOnly etc). On the other hand, while using Dir() function, such types don't get covered unless relevant arguments are explicitly supplied.
(b) Using Dir command via DOS command prompt, listing of
folders and files can be saved to a text file, which can then be imported into
access table. Such a listing is quite fast and one might be tempted to try
this route. However, there is a pitfall associated with this approach. If any
special characters are present in the folder or file name (say in internet
files), the same might not
come through faithfully. For example ® is found to come across as r -
resulting in corrupted path.
Version:
Access
2000 file format.
References:
(a) DAO 3.6 , (b) Microsoft Scripting Runtime