source: trunk/doc/html/qfile.html@ 208

Last change on this file since 208 was 190, checked in by rudi, 14 years ago

reference documentation added

File size: 28.7 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/src/tools/qfile.cpp:77 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>QFile Class</title>
7<style type="text/css"><!--
8fn { margin-left: 1cm; text-indent: -1cm; }
9a:link { color: #004faf; text-decoration: none }
10a:visited { color: #672967; text-decoration: none }
11body { background: #ffffff; color: black; }
12--></style>
13</head>
14<body>
15
16<table border="0" cellpadding="0" cellspacing="0" width="100%">
17<tr bgcolor="#E5E5E5">
18<td valign=center>
19 <a href="index.html">
20<font color="#004faf">Home</font></a>
21 | <a href="classes.html">
22<font color="#004faf">All&nbsp;Classes</font></a>
23 | <a href="mainclasses.html">
24<font color="#004faf">Main&nbsp;Classes</font></a>
25 | <a href="annotated.html">
26<font color="#004faf">Annotated</font></a>
27 | <a href="groups.html">
28<font color="#004faf">Grouped&nbsp;Classes</font></a>
29 | <a href="functions.html">
30<font color="#004faf">Functions</font></a>
31</td>
32<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>QFile Class Reference</h1>
33
34<p>The QFile class is an I/O device that operates on files.
35<a href="#details">More...</a>
36<p>Almost all the functions in this class are <a href="threads.html#reentrant">reentrant</a> when Qt is built with thread support. The exceptions are <a href="#setEncodingFunction"><b>setEncodingFunction</b></a>(), <a href="#setDecodingFunction"><b>setDecodingFunction</b></a>(), and <a href="#setErrorString"><b>setErrorString</b></a>().
37</p><p><tt>#include &lt;<a href="qfile-h.html">qfile.h</a>&gt;</tt>
38<p>Inherits <a href="qiodevice.html">QIODevice</a>.
39<p><a href="qfile-members.html">List of all member functions.</a>
40<h2>Public Members</h2>
41<ul>
42<li class=fn><a href="#QFile"><b>QFile</b></a> ()</li>
43<li class=fn><a href="#QFile-2"><b>QFile</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;name )</li>
44<li class=fn><a href="#~QFile"><b>~QFile</b></a> ()</li>
45<li class=fn>QString <a href="#name"><b>name</b></a> () const</li>
46<li class=fn>void <a href="#setName"><b>setName</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;name )</li>
47<li class=fn>typedef QCString&nbsp;(*&nbsp;<a href="#EncoderFn"><b>EncoderFn</b></a>&nbsp;)&nbsp;(&nbsp;const&nbsp;QString&nbsp;&amp;&nbsp;fileName&nbsp;)</li>
48<li class=fn>typedef QString&nbsp;(*&nbsp;<a href="#DecoderFn"><b>DecoderFn</b></a>&nbsp;)&nbsp;(&nbsp;const&nbsp;QCString&nbsp;&amp;&nbsp;localfileName&nbsp;)</li>
49<li class=fn>bool <a href="#exists-2"><b>exists</b></a> () const</li>
50<li class=fn>bool <a href="#remove"><b>remove</b></a> ()</li>
51<li class=fn>virtual bool <a href="#open"><b>open</b></a> ( int&nbsp;m )</li>
52<li class=fn>bool <a href="#open-2"><b>open</b></a> ( int&nbsp;m, FILE&nbsp;*&nbsp;f )</li>
53<li class=fn>bool <a href="#open-3"><b>open</b></a> ( int&nbsp;m, int&nbsp;f )</li>
54<li class=fn>virtual void <a href="#close"><b>close</b></a> ()</li>
55<li class=fn>virtual void <a href="#flush"><b>flush</b></a> ()</li>
56<li class=fn>virtual Offset <a href="#size"><b>size</b></a> () const</li>
57<li class=fn>virtual bool <a href="#atEnd"><b>atEnd</b></a> () const</li>
58<li class=fn>virtual Q_LONG <a href="#readLine"><b>readLine</b></a> ( char&nbsp;*&nbsp;p, Q_ULONG&nbsp;maxlen )</li>
59<li class=fn>Q_LONG <a href="#readLine-2"><b>readLine</b></a> ( QString&nbsp;&amp;&nbsp;s, Q_ULONG&nbsp;maxlen )</li>
60<li class=fn>virtual int <a href="#getch"><b>getch</b></a> ()</li>
61<li class=fn>virtual int <a href="#putch"><b>putch</b></a> ( int&nbsp;ch )</li>
62<li class=fn>virtual int <a href="#ungetch"><b>ungetch</b></a> ( int&nbsp;ch )</li>
63<li class=fn>int <a href="#handle"><b>handle</b></a> () const</li>
64<li class=fn>QString <a href="#errorString"><b>errorString</b></a> () const</li>
65</ul>
66<h2>Static Public Members</h2>
67<ul>
68<li class=fn>QCString <a href="#encodeName"><b>encodeName</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;fileName )</li>
69<li class=fn>QString <a href="#decodeName"><b>decodeName</b></a> ( const&nbsp;QCString&nbsp;&amp;&nbsp;localFileName )</li>
70<li class=fn>void <a href="#setEncodingFunction"><b>setEncodingFunction</b></a> ( EncoderFn&nbsp;f )</li>
71<li class=fn>void <a href="#setDecodingFunction"><b>setDecodingFunction</b></a> ( DecoderFn&nbsp;f )</li>
72<li class=fn>bool <a href="#exists"><b>exists</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;fileName )</li>
73<li class=fn>bool <a href="#remove-2"><b>remove</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;fileName )</li>
74</ul>
75<h2>Important Inherited Members</h2>
76<ul>
77<li class=fn>virtual QByteArray <a href="#readAll"><b>readAll</b></a> ()</li>
78</ul>
79<h2>Protected Members</h2>
80<ul>
81<li class=fn>void <a href="#setErrorString"><b>setErrorString</b></a> ( const&nbsp;QString&nbsp;&amp;&nbsp;str )</li>
82</ul>
83<hr><a name="details"></a><h2>Detailed Description</h2>
84
85
86
87The QFile class is an I/O device that operates on files.
88<p>
89
90<p> QFile is an I/O device for reading and writing binary and text
91files. A QFile may be used by itself or more conveniently with a
92<a href="qdatastream.html">QDataStream</a> or <a href="qtextstream.html">QTextStream</a>.
93<p> The file name is usually passed in the constructor but can be
94changed with <a href="#setName">setName</a>(). You can check for a file's existence with
95<a href="#exists">exists</a>() and remove a file with <a href="#remove">remove</a>().
96<p> The file is opened with <a href="#open">open</a>(), closed with <a href="#close">close</a>() and flushed
97with <a href="#flush">flush</a>(). Data is usually read and written using QDataStream
98or QTextStream, but you can read with <a href="qiodevice.html#readBlock">readBlock</a>() and <a href="#readLine">readLine</a>()
99and write with <a href="qiodevice.html#writeBlock">writeBlock</a>(). QFile also supports <a href="#getch">getch</a>(),
100<a href="#ungetch">ungetch</a>() and <a href="#putch">putch</a>().
101<p> The size of the file is returned by <a href="#size">size</a>(). You can get the
102current file position or move to a new file position using the
103<a href="qiodevice.html#at">at</a>() functions. If you've reached the end of the file, <a href="#atEnd">atEnd</a>()
104returns TRUE. The file handle is returned by <a href="#handle">handle</a>().
105<p> Here is a code fragment that uses <a href="qtextstream.html">QTextStream</a> to read a text file
106line by line. It prints each line with a line number.
107<pre>
108 <a href="qstringlist.html">QStringList</a> lines;
109 QFile file( "file.txt" );
110 if ( file.<a href="#open">open</a>( IO_ReadOnly ) ) {
111 <a href="qtextstream.html">QTextStream</a> stream( &amp;file );
112 <a href="qstring.html">QString</a> line;
113 int i = 1;
114 while ( !stream.<a href="qtextstream.html#atEnd">atEnd</a>() ) {
115 line = stream.<a href="qtextstream.html#readLine">readLine</a>(); // line of text excluding '\n'
116 printf( "%3d: %s\n", i++, line.<a href="qstring.html#latin1">latin1</a>() );
117 lines += line;
118 }
119 file.<a href="#close">close</a>();
120 }
121 </pre>
122
123<p> Writing text is just as easy. The following example shows how to
124write the data we read into the string list from the previous
125example:
126<pre>
127 QFile file( "file.txt" );
128 if ( file.<a href="#open">open</a>( IO_WriteOnly ) ) {
129 <a href="qtextstream.html">QTextStream</a> stream( &amp;file );
130 for ( QStringList::Iterator it = lines.begin(); it != lines.end(); ++it )
131 stream &lt;&lt; *it &lt;&lt; "\n";
132 file.<a href="#close">close</a>();
133 }
134 </pre>
135
136<p> The <a href="qfileinfo.html">QFileInfo</a> class holds detailed information about a file, such
137as access permissions, file dates and file types.
138<p> The <a href="qdir.html">QDir</a> class manages directories and lists of file names.
139<p> Qt uses Unicode file names. If you want to do your own I/O on Unix
140systems you may want to use <a href="#encodeName">encodeName</a>() (and <a href="#decodeName">decodeName</a>()) to
141convert the file name into the local encoding.
142<p>
143<p> <p>See also <a href="qdatastream.html">QDataStream</a>, <a href="qtextstream.html">QTextStream</a>, and <a href="io.html">Input/Output and Networking</a>.
144
145<hr><h2>Member Type Documentation</h2>
146<h3 class=fn><a name="DecoderFn"></a>QFile::DecoderFn</h3>
147
148<p> This is used by <a href="#setDecodingFunction">QFile::setDecodingFunction</a>().
149
150<h3 class=fn><a name="EncoderFn"></a>QFile::EncoderFn</h3>
151
152<p> This is used by <a href="#setEncodingFunction">QFile::setEncodingFunction</a>().
153
154<hr><h2>Member Function Documentation</h2>
155<h3 class=fn><a name="QFile"></a>QFile::QFile ()
156</h3>
157Constructs a QFile with no name.
158
159<h3 class=fn><a name="QFile-2"></a>QFile::QFile ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;name )
160</h3>
161Constructs a QFile with a file name <em>name</em>.
162<p> <p>See also <a href="#setName">setName</a>().
163
164<h3 class=fn><a name="~QFile"></a>QFile::~QFile ()
165</h3>
166Destroys a QFile. Calls <a href="#close">close</a>().
167
168<h3 class=fn>bool <a name="atEnd"></a>QFile::atEnd () const<tt> [virtual]</tt>
169</h3>
170Returns TRUE if the end of file has been reached; otherwise returns FALSE.
171If QFile has not been <a href="#open">open</a>()'d, then the behavior is undefined.
172<p> <p>See also <a href="#size">size</a>().
173
174<p>Example: <a href="distributor-example.html#x2655">distributor/distributor.ui.h</a>.
175<p>Reimplemented from <a href="qiodevice.html#atEnd">QIODevice</a>.
176<h3 class=fn>void <a name="close"></a>QFile::close ()<tt> [virtual]</tt>
177</h3>
178Closes an open file.
179<p> The file is not closed if it was opened with an existing file handle.
180If the existing file handle is a <tt>FILE*</tt>, the file is flushed.
181If the existing file handle is an <tt>int</tt> file descriptor, nothing
182is done to the file.
183<p> Some "write-behind" filesystems may report an unspecified error on
184closing the file. These errors only indicate that something may
185have gone wrong since the previous <a href="#open">open</a>(). In such a case <a href="qiodevice.html#status">status</a>()
186reports <a href="qiodevice.html#status">IO_UnspecifiedError</a> after <a href="#close">close</a>(), otherwise <a href="qiodevice.html#status">IO_Ok</a>.
187<p> <p>See also <a href="#open">open</a>() and <a href="#flush">flush</a>().
188
189<p>Examples: <a href="tutorial2-07.html#x2590">chart/chartform_files.cpp</a>, <a href="distributor-example.html#x2656">distributor/distributor.ui.h</a>, <a href="helpviewer-example.html#x987">helpviewer/helpwindow.cpp</a>, <a href="mdi-example.html#x2023">mdi/application.cpp</a>, <a href="qdir-example.html#x1814">qdir/qdir.cpp</a>, <a href="qwerty-example.html#x362">qwerty/qwerty.cpp</a>, and <a href="outliner-example.html#x1914">xml/outliner/outlinetree.cpp</a>.
190<p>Reimplemented from <a href="qiodevice.html#close">QIODevice</a>.
191<h3 class=fn><a href="qstring.html">QString</a> <a name="decodeName"></a>QFile::decodeName ( const&nbsp;<a href="qcstring.html">QCString</a>&nbsp;&amp;&nbsp;localFileName )<tt> [static]</tt>
192</h3>
193This does the reverse of <a href="#encodeName">QFile::encodeName</a>() using <em>localFileName</em>.
194<p> <p>See also <a href="#setDecodingFunction">setDecodingFunction</a>().
195
196<p>Example: <a href="distributor-example.html#x2657">distributor/distributor.ui.h</a>.
197<h3 class=fn><a href="qcstring.html">QCString</a> <a name="encodeName"></a>QFile::encodeName ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;fileName )<tt> [static]</tt>
198</h3>
199When you use QFile, <a href="qfileinfo.html">QFileInfo</a>, and <a href="qdir.html">QDir</a> to access the file system
200with Qt, you can use Unicode file names. On Unix, these file names
201are converted to an 8-bit encoding. If you want to do your own
202file I/O on Unix, you should convert the file name using this
203function. On Windows NT/2000, Unicode file names are supported
204directly in the file system and this function should be avoided.
205On Windows 95, non-Latin1 locales are not supported.
206<p> By default, this function converts <em>fileName</em> to the local 8-bit
207encoding determined by the user's locale. This is sufficient for
208file names that the user chooses. File names hard-coded into the
209application should only use 7-bit ASCII filename characters.
210<p> The conversion scheme can be changed using <a href="#setEncodingFunction">setEncodingFunction</a>().
211This might be useful if you wish to give the user an option to
212store file names in UTF-8, etc., but be aware that such file names
213would probably then be unrecognizable when seen by other programs.
214<p> <p>See also <a href="#decodeName">decodeName</a>().
215
216<p>Example: <a href="distributor-example.html#x2658">distributor/distributor.ui.h</a>.
217<h3 class=fn><a href="qstring.html">QString</a> <a name="errorString"></a>QFile::errorString () const
218</h3>
219Returns a human-readable description of the reason of an error that occurred
220on the device. The error described by the string corresponds to changes of
221<a href="qiodevice.html#status">QIODevice::status</a>(). If the status is reset, the error string is also reset.
222<p> The returned strings are not translated with the <a href="qobject.html#tr">QObject::tr</a>() or
223<a href="qapplication.html#translate">QApplication::translate</a>() functions. They are marked as translatable
224strings in the "QFile" context. Before you show the string to the user you
225should translate it first, for example:
226<p> <pre>
227 QFile f( "address.dat" );
228 if ( !f.<a href="#open">open</a>( <a href="qfile.html#open">IO_ReadOnly</a> ) {
229 QMessageBox::<a href="qmessagebox.html#critical">critical</a>(
230 this,
231 tr("Open failed"),
232 tr("Could not open file for reading: %1").arg( qApp-&gt;<a href="qapplication.html#translate">translate</a>("QFile",f.<a href="#errorString">errorString</a>()) )
233 );
234 return;
235 }
236 </pre>
237
238<p> <p>See also <a href="qiodevice.html#status">QIODevice::status</a>(), <a href="qiodevice.html#resetStatus">QIODevice::resetStatus</a>(), and <a href="#setErrorString">setErrorString</a>().
239
240<h3 class=fn>bool <a name="exists"></a>QFile::exists ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;fileName )<tt> [static]</tt>
241</h3>
242Returns TRUE if the file given by <em>fileName</em> exists; otherwise
243returns FALSE.
244
245<p>Examples: <a href="tutorial2-05.html#x2563">chart/chartform.cpp</a>, <a href="dirview-example.html#x1674">dirview/dirview.cpp</a>, and <a href="helpviewer-example.html#x988">helpviewer/helpwindow.cpp</a>.
246<h3 class=fn>bool <a name="exists-2"></a>QFile::exists () const
247</h3>
248This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
249<p> Returns TRUE if this file exists; otherwise returns FALSE.
250<p> <p>See also <a href="#name">name</a>().
251
252<h3 class=fn>void <a name="flush"></a>QFile::flush ()<tt> [virtual]</tt>
253</h3>
254Flushes the file buffer to the disk.
255<p> <a href="#close">close</a>() also flushes the file buffer.
256
257<p>Reimplemented from <a href="qiodevice.html#flush">QIODevice</a>.
258<h3 class=fn>int <a name="getch"></a>QFile::getch ()<tt> [virtual]</tt>
259</h3>
260Reads a single byte/character from the file.
261<p> Returns the byte/character read, or -1 if the end of the file has
262been reached.
263<p> <p>See also <a href="#putch">putch</a>() and <a href="#ungetch">ungetch</a>().
264
265<p>Reimplemented from <a href="qiodevice.html#getch">QIODevice</a>.
266<h3 class=fn>int <a name="handle"></a>QFile::handle () const
267</h3>
268Returns the file handle of the file.
269<p> This is a small positive integer, suitable for use with C library
270functions such as fdopen() and fcntl(). On systems that use file
271descriptors for sockets (ie. Unix systems, but not Windows) the handle
272can be used with <a href="qsocketnotifier.html">QSocketNotifier</a> as well.
273<p> If the file is not open or there is an error, <a href="#handle">handle</a>() returns -1.
274<p> <p>See also <a href="qsocketnotifier.html">QSocketNotifier</a>.
275
276<h3 class=fn><a href="qstring.html">QString</a> <a name="name"></a>QFile::name () const
277</h3>
278
279<p> Returns the name set by <a href="#setName">setName</a>().
280<p> <p>See also <a href="#setName">setName</a>() and <a href="qfileinfo.html#fileName">QFileInfo::fileName</a>().
281
282<h3 class=fn>bool <a name="open"></a>QFile::open ( int&nbsp;m )<tt> [virtual]</tt>
283</h3>
284Opens the file specified by the file name currently set, using the
285mode <em>m</em>. Returns TRUE if successful, otherwise FALSE.
286<p> <!-- index IO_Raw --><!-- index IO_ReadOnly --><!-- index IO_WriteOnly --><!-- index IO_ReadWrite --><!-- index IO_Append --><!-- index IO_Truncate --><!-- index IO_Translate -->
287<p> The mode parameter <em>m</em> must be a combination of the following flags:
288<center><table cellpadding="4" cellspacing="2" border="0">
289<tr bgcolor="#a2c511"> <th valign="top">Flag <th valign="top">Meaning
290<tr bgcolor="#f0f0f0"> <td valign="top">IO_Raw
291<td valign="top">Raw (non-buffered) file access.
292<tr bgcolor="#d0d0d0"> <td valign="top">IO_ReadOnly
293<td valign="top">Opens the file in read-only mode.
294<tr bgcolor="#f0f0f0"> <td valign="top">IO_WriteOnly
295<td valign="top">Opens the file in write-only mode. If this flag is used
296with another flag, e.g. <a href="qfile.html#open">IO_ReadOnly</a> or <a href="qfile.html#open">IO_Raw</a> or <a href="qfile.html#open">IO_Append</a>, the file is <em>not</em> truncated; but if used on
297its own (or with <a href="qfile.html#open">IO_Truncate</a>), the file is truncated.
298<tr bgcolor="#d0d0d0"> <td valign="top">IO_ReadWrite
299<td valign="top">Opens the file in read/write mode, equivalent to <tt>(IO_ReadOnly | IO_WriteOnly)</tt>.
300<tr bgcolor="#f0f0f0"> <td valign="top">IO_Append
301<td valign="top">Opens the file in append mode. (You must actually use <tt>(IO_WriteOnly | IO_Append)</tt> to make the file writable and
302to go into append mode.) This mode is very useful when you
303want to write something to a log file. The file index is
304set to the end of the file. Note that the result is
305undefined if you position the file index manually using
306<a href="qiodevice.html#at">at</a>() in append mode.
307<tr bgcolor="#d0d0d0"> <td valign="top">IO_Truncate
308<td valign="top">Truncates the file.
309<tr bgcolor="#f0f0f0"> <td valign="top">IO_Translate
310<td valign="top">Enables carriage returns and linefeed translation for text
311files under Windows.
312</table></center>
313<p> The raw access mode is best when I/O is block-operated using a 4KB
314block size or greater. Buffered access works better when reading
315small portions of data at a time.
316<p> <b>Warning:</b> When working with buffered files, data may not be written
317to the file at once. Call <a href="#flush">flush</a>() to make sure that the data is
318really written.
319<p> <b>Warning:</b> If you have a buffered file opened for both reading and
320writing you must not perform an input operation immediately after
321an output operation or vice versa. You should always call flush()
322or a file positioning operation, e.g. at(), between input and
323output operations, otherwise the buffer may contain garbage.
324<p> If the file does not exist and <a href="qfile.html#open">IO_WriteOnly</a> or <a href="qfile.html#open">IO_ReadWrite</a>
325is specified, it is created.
326<p> Example:
327<pre>
328 QFile f1( "/tmp/data.bin" );
329 f1.<a href="#open">open</a>( IO_Raw | IO_ReadWrite );
330
331 QFile f2( "readme.txt" );
332 f2.<a href="#open">open</a>( IO_ReadOnly | IO_Translate );
333
334 QFile f3( "audit.log" );
335 f3.<a href="#open">open</a>( IO_WriteOnly | IO_Append );
336 </pre>
337
338<p> <p>See also <a href="#name">name</a>(), <a href="#close">close</a>(), <a href="qiodevice.html#isOpen">isOpen</a>(), and <a href="#flush">flush</a>().
339
340<p>Examples: <a href="simple-application-example.html#x1548">application/application.cpp</a>, <a href="tutorial2-07.html#x2591">chart/chartform_files.cpp</a>, <a href="distributor-example.html#x2659">distributor/distributor.ui.h</a>, <a href="helpviewer-example.html#x989">helpviewer/helpwindow.cpp</a>, <a href="qdir-example.html#x1815">qdir/qdir.cpp</a>, <a href="qwerty-example.html#x363">qwerty/qwerty.cpp</a>, and <a href="outliner-example.html#x1915">xml/outliner/outlinetree.cpp</a>.
341<p>Reimplemented from <a href="qiodevice.html#open">QIODevice</a>.
342<h3 class=fn>bool <a name="open-2"></a>QFile::open ( int&nbsp;m, FILE&nbsp;*&nbsp;f )
343</h3>
344This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
345<p> Opens a file in the mode <em>m</em> using an existing file handle <em>f</em>.
346Returns TRUE if successful, otherwise FALSE.
347<p> Example:
348<pre>
349 #include &lt;stdio.h&gt;
350
351 void printError( const char* msg )
352 {
353 QFile f;
354 f.<a href="#open">open</a>( <a href="qfile.html#open">IO_WriteOnly</a>, stderr );
355 f.<a href="qiodevice.html#writeBlock">writeBlock</a>( msg, qstrlen(msg) ); // write to stderr
356 f.<a href="#close">close</a>();
357 }
358 </pre>
359
360<p> When a QFile is opened using this function, <a href="#close">close</a>() does not actually
361close the file, only flushes it.
362<p> <b>Warning:</b> If <em>f</em> is <tt>stdin</tt>, <tt>stdout</tt>, <tt>stderr</tt>, you may not
363be able to seek. See <a href="qiodevice.html#isSequentialAccess">QIODevice::isSequentialAccess</a>() for more
364information.
365<p> <p>See also <a href="#close">close</a>().
366
367<h3 class=fn>bool <a name="open-3"></a>QFile::open ( int&nbsp;m, int&nbsp;f )
368</h3>
369This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
370<p> Opens a file in the mode <em>m</em> using an existing file descriptor <em>f</em>.
371Returns TRUE if successful, otherwise FALSE.
372<p> When a QFile is opened using this function, <a href="#close">close</a>() does not actually
373close the file.
374<p> The QFile that is opened using this function, is automatically set to be in
375raw mode; this means that the file input/output functions are slow. If you
376run into performance issues, you should try to use one of the other open
377functions.
378<p> <b>Warning:</b> If <em>f</em> is one of 0 (stdin), 1 (stdout) or 2 (stderr), you may not
379be able to seek. <a href="#size">size</a>() is set to <tt>INT_MAX</tt> (in limits.h).
380<p> <p>See also <a href="#close">close</a>().
381
382<h3 class=fn>int <a name="putch"></a>QFile::putch ( int&nbsp;ch )<tt> [virtual]</tt>
383</h3>
384Writes the character <em>ch</em> to the file.
385<p> Returns <em>ch</em>, or -1 if some error occurred.
386<p> <p>See also <a href="#getch">getch</a>() and <a href="#ungetch">ungetch</a>().
387
388<p>Reimplemented from <a href="qiodevice.html#putch">QIODevice</a>.
389<h3 class=fn><a href="qbytearray.html">QByteArray</a> <a name="readAll"></a>QIODevice::readAll ()<tt> [virtual]</tt>
390</h3>
391This convenience function returns all of the remaining data in the
392device.
393
394<h3 class=fn>Q_LONG <a name="readLine"></a>QFile::readLine ( char&nbsp;*&nbsp;p, Q_ULONG&nbsp;maxlen )<tt> [virtual]</tt>
395</h3>
396Reads a line of text.
397<p> Reads bytes from the file into the char* <em>p</em>, until end-of-line
398or <em>maxlen</em> bytes have been read, whichever occurs first. Returns
399the number of bytes read, or -1 if there was an error. Any
400terminating newline is not stripped.
401<p> This function is only efficient for buffered files. Avoid
402<a href="#readLine">readLine</a>() for files that have been opened with the <a href="qfile.html#open">IO_Raw</a>
403flag.
404<p> <p>See also <a href="qiodevice.html#readBlock">readBlock</a>() and <a href="qtextstream.html#readLine">QTextStream::readLine</a>().
405
406<p>Reimplemented from <a href="qiodevice.html#readLine">QIODevice</a>.
407<h3 class=fn>Q_LONG <a name="readLine-2"></a>QFile::readLine ( <a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;s, Q_ULONG&nbsp;maxlen )
408</h3>
409This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
410<p> Reads a line of text.
411<p> Reads bytes from the file into string <em>s</em>, until end-of-line or
412<em>maxlen</em> bytes have been read, whichever occurs first. Returns
413the number of bytes read, or -1 if there was an error, e.g. end of
414file. Any terminating newline is not stripped.
415<p> This function is only efficient for buffered files. Avoid using
416<a href="#readLine">readLine</a>() for files that have been opened with the <a href="qfile.html#open">IO_Raw</a>
417flag.
418<p> Note that the string is read as plain Latin1 bytes, not Unicode.
419<p> <p>See also <a href="qiodevice.html#readBlock">readBlock</a>() and <a href="qtextstream.html#readLine">QTextStream::readLine</a>().
420
421<h3 class=fn>bool <a name="remove"></a>QFile::remove ()
422</h3>
423Removes the file specified by the file name currently set. Returns
424TRUE if successful; otherwise returns FALSE.
425<p> The file is closed before it is removed.
426
427<h3 class=fn>bool <a name="remove-2"></a>QFile::remove ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;fileName )<tt> [static]</tt>
428</h3>
429This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
430<p> Removes the file <em>fileName</em>.
431Returns TRUE if successful, otherwise FALSE.
432
433<h3 class=fn>void <a name="setDecodingFunction"></a>QFile::setDecodingFunction ( <a href="qfile.html#DecoderFn">DecoderFn</a>&nbsp;f )<tt> [static]</tt>
434</h3><p><b>Warning:</b> This function is <i>not</i> <a href="threads.html#reentrant">reentrant</a>.</p>
435
436
437<p> Sets the function for decoding 8-bit file names to <em>f</em>. The
438default uses the locale-specific 8-bit encoding.
439<p> <p>See also <a href="#encodeName">encodeName</a>() and <a href="#decodeName">decodeName</a>().
440
441<h3 class=fn>void <a name="setEncodingFunction"></a>QFile::setEncodingFunction ( <a href="qfile.html#EncoderFn">EncoderFn</a>&nbsp;f )<tt> [static]</tt>
442</h3><p><b>Warning:</b> This function is <i>not</i> <a href="threads.html#reentrant">reentrant</a>.</p>
443
444
445<p> Sets the function for encoding Unicode file names to <em>f</em>. The
446default encodes in the locale-specific 8-bit encoding.
447<p> <p>See also <a href="#encodeName">encodeName</a>().
448
449<h3 class=fn>void <a name="setErrorString"></a>QFile::setErrorString ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;str )<tt> [protected]</tt>
450</h3><p><b>Warning:</b> This function is <i>not</i> <a href="threads.html#reentrant">reentrant</a>.</p>
451
452
453<p> Sets the error string returned by the <a href="#errorString">errorString</a>() function to <em>str</em>.
454<p> <p>See also <a href="#errorString">errorString</a>() and <a href="qiodevice.html#status">QIODevice::status</a>().
455
456<h3 class=fn>void <a name="setName"></a>QFile::setName ( const&nbsp;<a href="qstring.html">QString</a>&nbsp;&amp;&nbsp;name )
457</h3>
458Sets the name of the file to <em>name</em>. The name can have no path, a
459relative path or an absolute absolute path.
460<p> Do not call this function if the file has already been opened.
461<p> If the file name has no path or a relative path, the path used
462will be whatever the application's current directory path is
463<em>at the time of the <a href="#open">open</a>()</em> call.
464<p> Example:
465<pre>
466 QFile file;
467 QDir::<a href="qdir.html#setCurrent">setCurrent</a>( "/tmp" );
468 file.<a href="#setName">setName</a>( "readme.txt" );
469 QDir::<a href="qdir.html#setCurrent">setCurrent</a>( "/home" );
470 file.<a href="#open">open</a>( <a href="qfile.html#open">IO_ReadOnly</a> ); // opens "/home/readme.txt" under Unix
471 </pre>
472
473<p> Note that the directory separator "/" works for all operating
474systems supported by Qt.
475<p> <p>See also <a href="#name">name</a>(), <a href="qfileinfo.html">QFileInfo</a>, and <a href="qdir.html">QDir</a>.
476
477<h3 class=fn><a href="qiodevice.html#Offset">Offset</a> <a name="size"></a>QFile::size () const<tt> [virtual]</tt>
478</h3>
479Returns the file size.
480<p>See also <a href="qiodevice.html#at">at</a>().
481
482<p>Example: <a href="statistics-example.html#x2781">table/statistics/statistics.cpp</a>.
483<p>Reimplemented from <a href="qiodevice.html#size">QIODevice</a>.
484<h3 class=fn>int <a name="ungetch"></a>QFile::ungetch ( int&nbsp;ch )<tt> [virtual]</tt>
485</h3>
486Puts the character <em>ch</em> back into the file and decrements the
487index if it is not zero.
488<p> This function is normally called to "undo" a <a href="#getch">getch</a>() operation.
489<p> Returns <em>ch</em>, or -1 if an error occurred.
490<p> <p>See also <a href="#getch">getch</a>() and <a href="#putch">putch</a>().
491
492<p>Reimplemented from <a href="qiodevice.html#ungetch">QIODevice</a>.
493<!-- eof -->
494<hr><p>
495This file is part of the <a href="index.html">Qt toolkit</a>.
496Copyright &copy; 1995-2007
497<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
498<table width=100% cellspacing=0 border=0><tr>
499<td>Copyright &copy; 2007
500<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
501<td align=right><div align=right>Qt 3.3.8</div>
502</table></div></address></body>
503</html>
Note: See TracBrowser for help on using the repository browser.