Like build-path (see section 11.3 in PLT MzScheme: Language Manual), but base
is required to be an absolute pathname. If base is not an
absolute pathname, error is called.
(build-relative-pathbase path···) PROCEDURE
Like build-path (see section 11.3 in PLT MzScheme: Language Manual), but base
is required to be a relative pathname. If base is not a relative
pathname, error is called.
Copies the file or directory src-path to dest-path,
raising exn:i/o:filesystem if the file or directory cannot be
copied, possibly because dest-path exists already. If
src-path is a directory, the copy applies recursively to the
directory's content. If a source is a link, the target of the link is
copied rather than the link itself.
(delete-directory/filespath) PROCEDURE
Deletes the file or directory specified by path, raising
exn:i/o:filesystem if the file or directory cannot be
deleted. If path is a directory, then
delete-directory/files is first applied to each file and
directory in path before the directory is deleted. The return
value is void.
(explode-pathpath) PROCEDURE
Returns the list of directories that constitute path.
The path argument must be normalized (except for letter case; see
normalize-path below).
(file-name-from-pathpath) PROCEDURE
If path is a file pathname, returns just the file name part
without the directory path.
(filename-extensionpath) PROCEDURE
Returns a string that is the extension part of the filename in
path. If path is (syntactically) a directory,
#f is returned.
(find-filespredicate[start-pathname]) PROCEDURE
Traverses the filesystem starting at start-pathname and creates
a list of all files and directories for which predicate returns
true. If start-pathname is #f (the default), then the
traversal starts from the current directory (as determined by
current-directory; see section 7.4.1.1 in PLT MzScheme: Language Manual).
The predicate procedure is called with a single argument for
each file or directory. If start-pathname is #f, the
argument is a pathname string that is relative to the current
directory. Otherwise, it is a pathname that starts with
start-pathname. Consequently, supplying
(current-directory) for start-pathname is different
from supplying #f, because predicate receives complete
paths in the former case and relative paths in the latter. Another
difference is that predicate is not called for the current
directory when start-pathname is #f.
The find-files traversal follows soft links. To avoid
following links, use the more general fold-files procedure.
If start-pathname does not refer to an existing file or
directory, then predicate will be called exactly once with
start-pathname as the argument.
(find-libraryname collection) PROCEDURE
Returns the path of the specified library (see Chapter 16 in PLT MzScheme: Language Manual),
returning #f if the specified library or collection cannot be
found. The collection argument is optional, defaulting to
"mzlib".
(find-relative-pathbasepath path) PROCEDURE
Finds a relative pathname with respect to basepath that names
the same file or directory as path. Both basepath and
path must be normalized (except for letter case; see normalize-path below).
If path is not a proper subpath of basepath (i.e., a
subpath that is strictly longer), path is returned.
Traverses the filesystem starting at start-pathname, calling
proc on each discovered file, directory, and link. If
start-pathname is #f (the default), then the traversal
starts from the current directory (as determined by
current-directory; see section 7.4.1.1 in PLT MzScheme: Language Manual).
The proc procedure is called with three arguments for each file,
directory, or link:
If start-pathname is #f, the first argument is a
pathname string that is relative to the current directory. Otherwise,
the first argument is a pathname that starts with
start-pathname. Consequently, supplying
(current-directory) for start-pathname is different
from supplying #f, because predicate receives complete
paths in the former case and relative paths in the latter. Another
difference is that proc is not called for the current directory
when start-pathname is #f.
The second argument is a symbol, either 'file,
'dir, or 'link. The second argument can be
'link only when follow-links? is #f,
in which case the filesystem traversal does not follow links. The
default for follow-links? is #t.
The third argument is the accumulated result. For the first
call to proc, the third argument is init-val. For the
second call to proc (if any), the third argument is the result
from the first call, and so on. The result of the last call to
proc is the result of fold-files.
If start-pathname does not refer to an existing file or
directory, then proc will be called exactly once with
start-pathname as the first argument, 'file as the
second argument, and init-val as the third argument.
Extracts a preference value from the file designated by
(find-system-path'pref-file) (see section 11.3 in PLT MzScheme: Language Manual),
or by filename if it is provided and is not #f. In
the former case, if the preference file doesn't exist,
get-preferences attempts to read a plt-prefs.ss file
in the defaults collection, instead. If neither file exists,
the preference set is empty.
The preference file should contain a symbol-keyed association list
(written to the file with the default parameter settings). Keys
starting with mzscheme:, mred:, and plt:
in any letter case are reserved for use by PLT.
The result of get-preference is the value associated with
name if it exists in the association list, or the result of
calling failure-thunk otherwise. The default
failure-thunk returns #f.
Preference settings from the standard preference file are cached
(weakly) across calls to get-preference; if
flush-cache? is provided as #f, the cache is used
instead of the re-consulting the preferences file.
Creates a new temporary file and returns a pathname string for the
file. Instead of merely generating a fresh file name, the file is
actually created; this prevents other threads or processes from
picking the same temporary name; if copy-from-filename is
provided as string, the temporary file is created as a copy of the
named file,. If copy-from-filename is #f or not
provided, the temporary file is created as empty.
The temporary file is not opened for reading or writing when the
pathname is returned. The client program calling
make-temporary-file is expected to open the file with the
desired access and flags (probably using the 'truncate
flag; see section 11.1.2 in PLT MzScheme: Language Manual) and to delete it when it is no longer
needed.
If format-string is specified, it must be a format string
suitable for use with format and one additional string
argument (where the string contains only digits). If the resulting
string is a relative path, it is combined with the result of
(find-system-path'temp-dir). The default
format-string is "mztmp~a".
(normalize-pathpath wrt) PROCEDURE
Returns a normalized, complete version of path, expanding the
path and resolving all soft links. If path is relative, then the
pathname wrt is used as the base path. The wrt argument is
optional; if is omitted, then the current directory is used as
the base path.
Letter case is not normalized by normalize-path, so
combine normalize-path with normal-case-path to get
strings for path comparison.
An error is signaled by normalize-path if the input
path contains an embedded path for a non-existent directory,
or if an infinite cycle of soft-links is detected.
(path-onlypath) PROCEDURE
If path is a filename, the file's path is returned. If
path is syntactically a directory, #f is returned.
Installs a set of preference values and writes all current values to
the preference file designated by (find-system-path'pref-file) (see section 11.3 in PLT MzScheme: Language Manual), or fielname if it is
supplied and not #f. The name-list argument must be a
list of symbols for the preference names, and val-list must
have the same length as name-list.
Current preference values are read from the preference file before
updating, and an update ``lock'' is held starting before the file
read, and lasting until after the preferences file is updated. The
lock is implemented by the existence of a file in the same directory
as the preference file.
If the update lock is already held (i.e., the lock file exists), then
locked-proc is called with a single argument: the path of the
lock file. The default locked-proc reports an error; an
alternative thunk might wait a while and try again, or give the user
the choice to delete the lock file (in case a previous update attempt
encountered disaster).
If filename is #f or not supplied, and the preference
file does not already exist, then values read from the
defaults collection (if any) are written for preferences that
are not mentioned in name-list.