::vfslib(3) Procedures to interact with virtual filesystems


package require Tcl 8.4

package require vfs ?1.2.1?

package require vfs::zip ?1.0?

package require vfs::mk4 ?1.6?

package require vfs::tar ?0.9?

package require vfs::ftp ?1.0?

package require vfs::ns ?1.0?

package require vfs::webdav ?0.1?

package require vfs::http ?0.5?

package require vfs::urltype ?1.0?

vfs::zip::Mount path to

vfs::ftp::Mount path to

vfs::tar::Mount path to

vfs::http::Mount path to

vfs::mk4::Mount path to

vfs::ns::Mount path to

vfs::urltype::Mount type


The ::vfs package includes a library of Tcl code, implementing a number of different virtual filesystems. Each of these exists as its own package, and can be accessed through package require vfs::NAME. The whole set of virtual filesystems is known informally as 'vfslib'


The current supported types are ftp, tar, http, zip, mk4, ns, webdav. 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

vfs::urltype::Mount ftp

for instance. Any access inside the new volume will result in an attempt to require a package through 'package require vfs::${type}', which must therefore exist, or errors will be thrown.


Most of the vfs types listed above have not been very well debugged as yet. Please test them!


vfs, vfslib, filesystem, zip, tar, webdav, namespace, ftp, http, file