libmacfs.tex 7.59 KB
Newer Older
1
\section{Built-in Module \sectcode{macfs}}
Guido van Rossum's avatar
Guido van Rossum committed
2
\label{module-macfs}
Jack Jansen's avatar
Jack Jansen committed
3 4
\bimodindex{macfs}

5
\setindexsubitem{(in module macfs)}
6

Jack Jansen's avatar
Jack Jansen committed
7 8 9 10
This module provides access to macintosh FSSpec handling, the Alias
Manager, finder aliases and the Standard File package.

Whenever a function or method expects a \var{file} argument, this
11
argument can be one of three things:\ (1) a full or partial Macintosh
Jack Jansen's avatar
Jack Jansen committed
12
pathname, (2) an FSSpec object or (3) a 3-tuple \code{(wdRefNum,
13
parID, name)} as described in Inside Mac VI\@. A description of aliases
Jack Jansen's avatar
Jack Jansen committed
14 15 16 17 18 19 20 21
and the standard file package can also be found there.

\begin{funcdesc}{FSSpec}{file}
Create an FSSpec object for the specified file.
\end{funcdesc}

\begin{funcdesc}{RawFSSpec}{data}
Create an FSSpec object given the raw data for the C structure for the
22 23
FSSpec as a string.  This is mainly useful if you have obtained an
FSSpec structure over a network.
Jack Jansen's avatar
Jack Jansen committed
24 25 26
\end{funcdesc}

\begin{funcdesc}{RawAlias}{data}
27 28 29
Create an Alias object given the raw data for the C structure for the
alias as a string.  This is mainly useful if you have obtained an
FSSpec structure over a network.
Jack Jansen's avatar
Jack Jansen committed
30 31
\end{funcdesc}

32 33 34 35
\begin{funcdesc}{FInfo}{}
Create a zero-filled FInfo object.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
36
\begin{funcdesc}{ResolveAliasFile}{file}
37 38
Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec}, \var{isfolder},
\var{aliased})} where \var{fsspec} is the resulting FSSpec object,
Jack Jansen's avatar
Jack Jansen committed
39 40 41 42 43 44
\var{isfolder} is true if \var{fsspec} points to a folder and
\var{aliased} is true if the file was an alias in the first place
(otherwise the FSSpec object for the file itself is returned).
\end{funcdesc}

\begin{funcdesc}{StandardGetFile}{\optional{type\, ...}}
45
Present the user with a standard ``open input file''
Jack Jansen's avatar
Jack Jansen committed
46 47 48 49 50 51
dialog. Optionally, you can pass up to four 4-char file types to limit
the files the user can choose from. The function returns an FSSpec
object and a flag indicating that the user completed the dialog
without cancelling.
\end{funcdesc}

52 53 54 55
\begin{funcdesc}{PromptGetFile}{prompt\optional{\, type\, ...}}
Similar to \var{StandardGetFile} but allows you to specify a prompt.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
56 57 58
\begin{funcdesc}{StandardPutFile}{prompt\, \optional{default}}
Present the user with a standard ``open output file''
dialog. \var{prompt} is the prompt string, and the optional
59
\var{default} argument initializes the output file name. The function
Jack Jansen's avatar
Jack Jansen committed
60 61 62 63
returns an FSSpec object and a flag indicating that the user completed
the dialog without cancelling.
\end{funcdesc}

64
\begin{funcdesc}{GetDirectory}{\optional{prompt}}
Jack Jansen's avatar
Jack Jansen committed
65
Present the user with a non-standard ``select a directory''
66 67
dialog. \var{prompt} is the prompt string, and the optional.
Return an FSSpec object and a success-indicator.
Jack Jansen's avatar
Jack Jansen committed
68 69
\end{funcdesc}

Guido van Rossum's avatar
Guido van Rossum committed
70 71 72 73 74 75 76 77 78 79 80 81
\begin{funcdesc}{SetFolder}{\optional{fsspec}}
Set the folder that is initially presented to the user when one of
the file selection dialogs is presented. \var{Fsspec} should point to
a file in the folder, not the folder itself (the file need not exist,
though). If no argument is passed the folder will be set to the
current directory, i.e. what \code{os.getcwd()} returns.

Note that starting with system 7.5 the user can change Standard File
behaviour with the ``general controls'' controlpanel, thereby making
this call inoperative.
\end{funcdesc}

82 83
\begin{funcdesc}{FindFolder}{where\, which\, create}
Locates one of the ``special'' folders that MacOS knows about, such as
84 85 86 87
the trash or the Preferences folder. \var{Where} is the disk to
search, \var{which} is the 4-char string specifying which folder to
locate. Setting \var{create} causes the folder to be created if it
does not exist. Returns a \code{(vrefnum, dirid)} tuple.
88
\end{funcdesc}
89

90 91 92 93 94
\begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname}
Return a minimal alias record object that points to the given file, which
must be specified as a full pathname. This is the only way to create an
alias record pointing to a non-existing file.

95 96
The constants for \var{where} and \var{which} can be obtained from the
standard module \var{MACFS}.
97 98
\end{funcdesc}

99 100 101 102 103
\begin{funcdesc}{FindApplication}{creator}
Locate the application with 4-char creator code \var{creator}. The
function returns an FSSpec object pointing to the application.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
104 105
\subsection{FSSpec objects}

106
\setindexsubitem{(FSSpec object attribute)}
Jack Jansen's avatar
Jack Jansen committed
107 108 109 110 111
\begin{datadesc}{data}
The raw data from the FSSpec object, suitable for passing
to other applications, for instance.
\end{datadesc}

112
\setindexsubitem{(FSSpec object method)}
Jack Jansen's avatar
Jack Jansen committed
113 114 115 116 117
\begin{funcdesc}{as_pathname}{}
Return the full pathname of the file described by the FSSpec object.
\end{funcdesc}

\begin{funcdesc}{as_tuple}{}
118
Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of the file described
Jack Jansen's avatar
Jack Jansen committed
119 120 121 122 123
by the FSSpec object.
\end{funcdesc}

\begin{funcdesc}{NewAlias}{\optional{file}}
Create an Alias object pointing to the file described by this
124
FSSpec. If the optional \var{file} parameter is present the alias
Jack Jansen's avatar
Jack Jansen committed
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
will be relative to that file, otherwise it will be absolute.
\end{funcdesc}

\begin{funcdesc}{NewAliasMinimal}{}
Create a minimal alias pointing to this file.
\end{funcdesc}

\begin{funcdesc}{GetCreatorType}{}
Return the 4-char creator and type of the file.
\end{funcdesc}

\begin{funcdesc}{SetCreatorType}{creator\, type}
Set the 4-char creator and type of the file.
\end{funcdesc}

140 141 142 143 144 145 146 147 148
\begin{funcdesc}{GetFInfo}{}
Return a FInfo object describing the finder info for the file.
\end{funcdesc}

\begin{funcdesc}{SetFInfo}{finfo}
Set the finder info for the file to the values specified in the
\var{finfo} object.
\end{funcdesc}

149 150 151 152 153 154 155 156 157 158 159
\begin{funcdesc}{GetDates}{}
Return a tuple with three floating point values representing the
creation date, modification date and backup date of the file.
\end{funcdesc}

\begin{funcdesc}{SetDates}{crdate\, moddate\, backupdate}
Set the creation, modification and backup date of the file. The values
are in the standard floating point format used for times throughout
Python.
\end{funcdesc}

Jack Jansen's avatar
Jack Jansen committed
160 161
\subsection{alias objects}

162
\setindexsubitem{(alias object attribute)}
Jack Jansen's avatar
Jack Jansen committed
163 164 165 166 167
\begin{datadesc}{data}
The raw data for the Alias record, suitable for storing in a resource
or transmitting to other programs.
\end{datadesc}

168
\setindexsubitem{(alias object method)}
Jack Jansen's avatar
Jack Jansen committed
169 170
\begin{funcdesc}{Resolve}{\optional{file}}
Resolve the alias. If the alias was created as a relative alias you
171
should pass the file relative to which it is. Return the FSSpec for
Jack Jansen's avatar
Jack Jansen committed
172
the file pointed to and a flag indicating whether the alias object
173 174 175
itself was modified during the search process. If the file does
not exist but the path leading up to it does exist a valid fsspec
is returned.
Jack Jansen's avatar
Jack Jansen committed
176 177 178 179 180 181 182 183 184 185 186
\end{funcdesc}

\begin{funcdesc}{GetInfo}{num}
An interface to the C routine \code{GetAliasInfo()}.
\end{funcdesc}

\begin{funcdesc}{Update}{file\, \optional{file2}}
Update the alias to point to the \var{file} given. If \var{file2} is
present a relative alias will be created.
\end{funcdesc}

187
Note that it is currently not possible to directly manipulate a resource
Jack Jansen's avatar
Jack Jansen committed
188
as an alias object. Hence, after calling \var{Update} or after
189
\var{Resolve} indicates that the alias has changed the Python program
Jack Jansen's avatar
Jack Jansen committed
190 191 192 193
is responsible for getting the \var{data} from the alias object and
modifying the resource.


194 195 196 197 198
\subsection{FInfo objects}

See Inside Mac for a complete description of what the various fields
mean.

199
\setindexsubitem{(FInfo object attribute)}
200 201 202 203 204 205 206 207 208
\begin{datadesc}{Creator}
The 4-char creator code of the file.
\end{datadesc}

\begin{datadesc}{Type}
The 4-char type code of the file.
\end{datadesc}

\begin{datadesc}{Flags}
209 210
The finder flags for the file as 16-bit integer. The bit values in
\var{Flags} are defined in standard module \var{MACFS}.
211 212 213 214 215 216 217 218 219
\end{datadesc}

\begin{datadesc}{Location}
A Point giving the position of the file's icon in its folder.
\end{datadesc}

\begin{datadesc}{Fldr}
The folder the file is in (as an integer).
\end{datadesc}