Commands related to files, disks and volumes
This package provides procedures related to file, logical disk and volume information. For commands related to physical disks see the twapi_device module.
The command find_volumes returns a list of volumes on the system. The command get_volume_info returns various information about a volume (logical drive) including size and space utilization, file system characteristics and device.
The command find_volume_mount_points returns the list of volume mount points on a particular volume. Commands mount_volume and unmount_volume can be used to set and remove volumes from volume mount points. The command get_mounted_volume_name will return the name of the volume mounted on a drive letter or volume mount point.
For all drive related commands, the drive parameter may be specified as a single drive letter, a drive letter followed by a :, or as the root path of the drive (eg. C:\)
The command find_logical_drives returns a list of drives in the system of a specified type. drive_ready checks if the specified drive is ready. get_drive_type returns the type (fixed, remote, etc.) of the logical drive.
The command user_drive_space_available can be used to check if sufficient free space is available on a drive.
The command set_drive_label may be used to set the volume name (drive label).
The command map_drive_local and unmap_drive_local may be used to assign and unassign a drive letter to a local path.
The commands begin_filesystem_monitor and cancel_filesystem_monitor can be used for monitoring changes to the file system.
The commands get_file_times and set_file_times and allow retrieval and setting of the times associated with a file.
The command flush_channel flushes operating system buffers associated with a Tcl channel to disk.
-access BOOLEAN | If true, changes to the last access time are monitored. |
-attr BOOLEAN | If true, attribute changes, are monitored. |
-create BOOLEAN | If true, changes to the creation times are monitored. |
-dirname BOOLEAN | If true, directory name changes, including creation and renaming, are monitored. |
-filename BOOLEAN | If true, file name changes, including file creation, renaming and deletion, are monitored. |
-patterns PATTERNLIST | If specified, notification callbacks are invoked only on those files and directories that match one of the patterns in PATTERNLIST. See below for more detail. |
-secd BOOLEAN | If true, changes to security descriptors in the specified directories are monitored. |
-size BOOLEAN | If true, size changes in the specified directories are monitored. |
-subtree BOOLEAN | If true, all subdirectories under the specified directory PATH are monitored in addition to PATH itself. If false (default), only the directory indicated by PATH is monitored. |
-write BOOLEAN | If true, changes to the last write time of files in the specified directories are monitored. |
added | The file or directory was added. |
removed | The file or directory was deleted. |
modified | The file or directory was modified. This includes changes to attributes or timestamps. |
renameold | The file or directory was renamed. The associated name is the old name. |
renamenew | The file or directory was renamed. The associated name is the new name. |
error | There was an error in the operation. In this case the corresponding paired element is an error code. On receiving an error notification, the monitoring should generally be canceled by calling cancel_filesystem_monitor. |
begin_filesystem_monitor c:/temp callback -patterns {*.exe}will only monitor files in c:\temp with .exe extensions.
begin_filesystem_monitor c:/temp callback -patterns {-*.foo +*.fo*}will monitor files in c:\temp with an extension beginning with .fo except if the extension is .foo.
begin_filesystem_monitor c:/temp callback -patterns {+*.fo* -*.foo}will monitor files in c:\temp with an extension beginning with .fo including those with extension .foo. The second pattern -*.foo has no effect as the matching stops as soon as a match is found.
-all | Returns all fields. |
-atime | Returns the time of last access for the file. |
-ctime | Returns the creation time for the file. |
-mtime | Returns the time of last modification for the file. |
-all | Returns all fields except -extents, -type and -device which have to be explicitly specified since they are not valid for volumes. |
-attr | Returns a list containing one or more of the values case_preserved_names, unicode_on_disk, persistent_acls, file_compression, volume_quotas, supports_sparse_files, supports_reparse_points, supports_remote_storage, volume_is_compressed, supports_object_ids, supports_encryption, named_streams, read_only_volume, sequential_write_once, supports_transactions, supports_hard_links, supports_extended_attributes, supports_open_by_file_id, or supports_usn_journal. These indicate the features supported by the drive's file system. Refer to the documentation for GetVolumeInformation function in the Windows SDK for details on these. |
-device | Returns a list the first element of which is the device name mapping for the drive. Remaining elements containing prior undeleted mappings for the drive. Only valid if DRIVE is a drive letter. For UNC paths, an empty string will be returned. |
-extents | Returns a list of disk extents describing the physical location of the volume. Each disk extent is a keyed list containing 3 fields: -disknumber identifying the physical disk, -startingoffset containing the byte offset in the physical disk that the extent starts at, and -extentlength containing the size of the extent. An empty list is returned for extents if they cannot be determined (for example, for remote drives). |
-freespace | Returns the total size of the unused space on the drive in bytes. |
-fstype | Returns the type of the file system on the volume (eg. NTFS). |
-label | Returns the label of the drive. |
-maxcomponentlen | Returns the maximum length allowed for a single component in a file path. |
-serialnum | Returns the serial number of the drive in hexadecimal format. |
-size | Returns the size of the drive in bytes. |
-type | Returns the type of the drive. Only valid if DRIVE is a drive letter. This may have one of the values unknown, removable, fixed, remote, cdrom or ramdisk. In case the drive path is invalid, the value invalid is returned in this field. |
-used | Returns the total size of the used space on the drive in bytes. |
-useravail | Returns the total size of the unused space on the drive that is available for the caller. This may be less than the freespace field if quotas are in effect. |
-raw | Specifies that PATH is a raw path specification that includes the device name as opposed to a drive letter. |
-atime LARGETIMESTAMP | Sets the time of last access for the file. |
-ctime LARGETIMESTAMP | Sets the creation time for the file. |
-mtime LARGETIMESTAMP | Sets the time of last modification for the file. |
-preserveatime | Indicates that the time of last access for an open file should be preserved and not updated when the file is closed. This option can only be specified if FILE is either an open Tcl channel or Win32 handle and not if it is a file path. Also, the option cannot be used together with -atime. |
-path PATH | Specifies that the drive should be unmapped only if it refers to the location specified by PATH. This is useful to ensure drive letters are not unmapped when they have been redefined to point elsewhere. |
-raw | Specifies that PATH argument specified with the -path option is a raw path specification that includes the device name as opposed to a drive letter. |
Copyright © 2003-2009 Ashok P. Nadkarni