.sp
\fBvfs::filesystem\fR \fIunmount\fR
.sp
+\fBvfs::accessMode\fR \fImode\fR
+.sp
+\fBvfs::matchDirectories\fR \fItypes\fR
+.sp
+\fBvfs::matchFiles\fR \fItypes\fR
+.sp
+\fBvfs::matchCorrectTypes\fR \fItypes\fR \fIfilelist\fR \fI?inDir?\fR
.sp
-\fBvfs::foo \fIa b c\fR
.BE
.SH DESCRIPTION
.PP
.PP
The Tcl 'Tcl_FSMatchInDirectory' function takes a variety of type
information in a Tcl_GlobTypeData structure. We currently only expose
-the 'type' field from that structure.
+the 'type' field from that structure (so the 'permissions' and MacOS
+type/creator fields are ignored).
.SH KEYWORDS
vfs, filesystem, file
--- /dev/null
+'\"
+'\" Copyright (c) 2001, Vince Darley
+'\"
+'\"
+.so man.macros
+.TH vfslib n 1.0 Vfslib "Tcl-only Virtual File Systems"
+.BS
+'\" Note: do not modify the .sh NAME line immediately below!
+.SH NAME
+::vfslib \- Procedures to interact with virtual filesystems
+.SH SYNOPSIS
+.BS
+.sp
+\fBpackage require Tcl 8.4\fR
+.sp
+\fBpackage require vfs ?1.0?\fR
+.sp
+\fBvfs::zip::Mount\fR \fIpath\fR \fIto\fR
+.sp
+\fBvfs::ftp::Mount\fR \fIpath\fR \fIto\fR
+.sp
+\fBvfs::http::Mount\fR \fIpath\fR \fIto\fR
+.sp
+\fBvfs::mk4::Mount\fR \fIpath\fR \fIto\fR
+.sp
+\fBvfs::ns::Mount\fR \fIpath\fR \fIto\fR
+.sp
+\fBvfs::urltype::Mount\fR \fItype\fR
+.sp
+.BE
+.SH DESCRIPTION
+.PP
+The \fB::vfs\fR package includes a library of Tcl code, informally
+known as 'vfslib' which can be accessed through \fBpackage require
+vfs\fP.
+.PP
+.SH SUPPORTED VFS TYPES
+.PP
+The current supported types are ftp, http, zip, mk4, ns. In addition
+there is the ability to mount any 'urltype' as a new volume, provided
+an appropriate vfs is supported. This means that you can treat
+'ftp://', 'http://' and 'file://' urls as files. To do this, simply
+evaluate the command
+.PP
+\fIvfs::urltype::Mount ftp\fR
+.PP
+for instance.
+.PP
+.SH LIMITATIONS
+.PP
+Most of the vfs types listed above have not been very well debugged
+as yet. Please test them!
+.SH KEYWORDS
+vfs, vfslib, filesystem, zip, ftp, http, file
+
+
--- /dev/null
+catch {console show}
+
+puts "(pwd is '[pwd]', file volumes is '[file volumes]')"
+
+package require vfs
+
+puts "Adding ftp:// volume..."
+vfs::urltype::Mount ftp
+set listing [glob -dir ftp://ftp.scriptics.com/pub *]
+puts "ftp.scriptics.com/pub listing"
+puts "$listing"
+puts "----"
+puts "(file volumes is '[file volumes]')"
+
+puts "Adding http:// volume..."
+vfs::urltype::Mount http
+set fd [open http://sourceforge.net/projects/tcl]
+set contents [read $fd] ; close $fd
+puts "Contents of <http://sourceforge.net/projects/tcl> web page"
+puts [string range $contents 0 100]
+puts "(first 100 out of [string length $contents] characters)"
+puts "----"
+puts "(file volumes is '[file volumes]')"
+
+puts "Mounting ftp://ftp.ucsd.edu/pub/alpha/ ..."
+vfs::ftp::Mount ftp://ftp.ucsd.edu/pub/alpha/ localmount
+cd localmount ; cd tcl
+puts "(pwd is now '[pwd]')"
+puts "sourcing remote file 'vfsTest.tcl', using 'source vfsTest.tcl'"
+source vfsTest.tcl
+
+puts "Done"