?? qfile.html
字號:
<p> <p>也可以參考<a href="#decodeName">decodeName</a>()。
<h3 class=fn>bool <a name="exists"></a>QFile::exists ( const <a href="qstring.html">QString</a> & fileName )<tt> [靜態]</tt>
</h3>
如果給定的文件<em>fileName</em>存在,返回真,否則返回假。
<p>實例:<a href="tutorial2-05.html#x2468">chart/chartform.cpp</a>、<a href="dirview-example.html#x1714">dirview/dirview.cpp</a>和<a href="helpviewer-example.html#x989">helpviewer/helpwindow.cpp</a>。
<h3 class=fn>bool <a name="exists-2"></a>QFile::exists () const
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 如果這個文件存在,返回真,否則返回假。
<p>也可以參考<a href="#name">name</a>()。
<h3 class=fn>void <a name="flush"></a>QFile::flush ()<tt> [虛]</tt>
</h3>
刷新文件緩存到磁盤。
<p> <a href="#close">close</a>()也刷新文件緩存。
<p>從<a href="qiodevice.html#flush">QIODevice</a>中重新實現的。
<h3 class=fn>int <a name="getch"></a>QFile::getch ()<tt> [虛]</tt>
</h3>
從文件中讀取一個單字節/字符。
<p> 返回所讀的字節/字符,如果到達文件的末尾,返回-1。
<p> <p>也可以參考<a href="#putch">putch</a>()和<a href="#ungetch">ungetch</a>()。
<p>從<a href="qiodevice.html#getch">QIODevice</a>中重新實現的。
<h3 class=fn>int <a name="handle"></a>QFile::handle () const
</h3>
返回這個文件的文件句柄。
<p> 如果是一個小的正整數,可以用在像fdopen()和fcntl()這樣的C庫函數中,也可以用在<a href="qsocketnotifier.html">QSocketNotifier</a>中。
<p> 如果這個文件沒有被打開或者存在錯誤,<a href="#handle">handle</a>()返回-1。
<p> <p>也可以參考<a href="qsocketnotifier.html">QSocketNotifier</a>。
<h3 class=fn><a href="qstring.html">QString</a> <a name="name"></a>QFile::name () const
</h3>
返回由<a href="#setName">setName</a>()設置的名稱。
<p>也可以參考<a href="#setName">setName</a>()和<a href="qfileinfo.html#fileName">QFileInfo::fileName</a>()。
<h3 class=fn>bool <a name="open"></a>QFile::open ( int m )<tt> [虛]</tt>
</h3>
使用<em>m</em>模式和當前指定的文件名打開文件。如果成功,返回真,否則返回假。
<p> <!-- index IO_Raw --><!-- index IO_ReadOnly --><!-- index IO_WriteOnly --><!-- index IO_ReadWrite --><!-- index IO_Append --><!-- index IO_Truncate --><!-- index IO_Translate -->
<p> 模式參數<em>m</em>必須是下列標記的組合:
<ul>
<li> <a href="qfile.html#open">IO_Raw</a> 指定直接的(非緩存的)文件訪問。
<li> <a href="qfile.html#open">IO_ReadOnly</a> 以只讀模式打開文件。
<li> <a href="qfile.html#open">IO_WriteOnly</a> 以只寫模式(并且截短)打開文件。
<li> <a href="qfile.html#open">IO_ReadWrite</a> 以讀/寫模式打開文件,等于<tt>(IO_ReadOnly | IO_WriteOnly)</tt>。
<li> <a href="qfile.html#open">IO_Append</a> 以附加的模式打開文件。當你想向日志文件寫些東西時這個模式非常有用。文件索引被設置到文件末尾。注意如果你在附加模式中使用<a href="#at">at</a>()定位文件索引,結果將是為定義的。
<li> <a href="qfile.html#open">IO_Truncate</a> 截短文件。
<li> <a href="qfile.html#open">IO_Translate</a> 在MS-DOS、Windows和OS/2下對文本文件翻譯回車和換行。
</ul>
<p> 直接訪問模式在輸入/輸出的塊操作使用4千字節或更大的情況下使用最好。當每次讀小量數據時,緩存訪問工作的更好。
<p> <strong>重要:</strong>當使用緩存的文件工作時,數據沒有被立刻寫到文件中。調用<a href="#flush">flush</a>()可以確保數據被真正地寫完。
<p> <b>警告:</b>如果你有一個緩存文件以同時讀寫方式打開,你不要在一次輸入操作之后立即輸出,反之亦然。你必須在輸入和輸出操作之間調用flush()或者一次文件定位操作,比如seek(),否則緩存中可能會包含無用信息。
<p> 如果文件不存在并且指定<a href="qfile.html#open">IO_WriteOnly</a>或<a href="qfile.html#open">IO_ReadWrite</a>時,文件被創建。
<p> 實例:
<pre>
QFile f1( "/tmp/data.bin" );
QFile f2( "readme.txt" );
f1.<a href="#open">open</a>( IO_Raw | IO_ReadWrite | IO_Append );
f2.<a href="#open">open</a>( IO_ReadOnly | IO_Translate );
</pre>
<p> <p>也可以參考<a href="#name">name</a>()、 <a href="#close">close</a>()、<a href="qiodevice.html#isOpen">isOpen</a>()和<a href="#flush">flush</a>()。
<p>實例:<a href="qaction-application-example.html#x1067">action/application.cpp</a>、<a href="simple-application-example.html#x1511">application/application.cpp</a>、<a href="tutorial2-07.html#x2496">chart/chartform_files.cpp</a>、<a href="helpviewer-example.html#x990">helpviewer/helpwindow.cpp</a>、<a href="qdir-example.html#x1808">qdir/qdir.cpp</a>、<a href="qwerty-example.html#x361">qwerty/qwerty.cpp</a>和<a href="outliner-example.html#x1904">xml/outliner/outlinetree.cpp</a>。
<p>從<a href="qiodevice.html#open">QIODevice</a>中重新實現的。
<h3 class=fn>bool <a name="open-2"></a>QFile::open ( int m, FILE * f )
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 使用<em>m</em>模式和一個存在的文件句柄<em>f</em>打開文件。如果成功,返回真,否則返回假。
<p> 實例:
<pre>
#include <stdio.h>
void printError( const char* msg )
{
QFile f;
f.<a href="#open">open</a>( <a href="qfile.html#open">IO_WriteOnly</a>, stderr );
f.<a href="qiodevice.html#writeBlock">writeBlock</a>( msg, qstrlen(msg) ); // 寫到標準錯誤輸出(stderr)
f.<a href="#close">close</a>();
}
</pre>
<p> 當使用這個函數打開一個QFile時,<a href="#close">close</a>()并不真正關閉這個文件,只是刷新它。
<p> <b>警告:</b>如果<em>f</em>是<tt>標準輸入(stdin)</tt>、<tt>標準輸出(stdout)</tt>、<tt>標準錯誤輸出(stderr)</tt>,你也許不能搜索。更詳細的信息請看<a href="qiodevice.html#isSequentialAccess">QIODevice::isSequentialAccess</a>()。
<p> <p>也可以參考<a href="#close">close</a>()。
<h3 class=fn>bool <a name="open-3"></a>QFile::open ( int m, int f )
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 使用<em>m</em>模式和一個存在的文件描述符<em>f</em>打開文件。如果成功,返回真,否則返回假。
<p> 當使用這個函數打開一個QFile時,<a href="#close">close</a>()并不真正關閉這個文件。
<p> 使用這個函數打開一個QFile時,它被自動設置為直接模式,這就意味著文件輸入/輸出函數是慢的。如果你需要更好的執行效率,請你試著使用其它打開函數。
<p> <b>警告:</b>如果<em>f</em>是0(stdin)、1(stdout)或2(stderr)其中之一時,你也許不能搜索。<a href="#size">size</a>()被設置為<tt>INT_MAX</tt>(在limits.h文件中)。
<p> <p>也可以參考<a href="#close">close</a>()。
<h3 class=fn>int <a name="putch"></a>QFile::putch ( int ch )<tt> [虛]</tt>
</h3>
寫字符<em>ch</em>到文件。
<p> 返回<em>ch</em>,或者如果發生錯誤,返回-1。
<p> <p>也可以參考<a href="#getch">getch</a>()和<a href="#ungetch">ungetch</a>()。
<p>從<a href="qiodevice.html#putch">QIODevice</a>中重新實現的。
<h3 class=fn><a href="qbytearray.html">QByteArray</a> <a name="readAll"></a>QIODevice::readAll ()<tt> [虛]</tt>
</h3>
這個方便的函數返回這個設備中的所有剩余數據。
<h3 class=fn>Q_LONG <a name="readBlock"></a>QFile::readBlock ( char * p, Q_ULONG len )<tt> [虛]</tt>
</h3>
從這個文件中讀取最多<em>maxlen</em>字節到<em>p</em>并且返回實際讀取的字節數量。
<p> 如果發生嚴重錯誤,返回-1。
<p><b>警告:</b>當一個緩存文件為了讀寫而打開時,我們已經在使用一些C庫時遇到了問題。如果在一個寫操作后立即執行一個讀操作,讀緩存中就會包含無用信息。更可怕的是,一些無用信息被寫到文件中。在<a href="#readBlock">readBlock</a>()之前調用<a href="#flush">flush</a>()就可以解決這個問題。
<p> <p>也可以參考<a href="qiodevice.html#writeBlock">writeBlock</a>()。
<p>實例:<a href="qwerty-example.html#x362">qwerty/qwerty.cpp</a>。
<p>從<a href="qiodevice.html#readBlock">QIODevice</a>中重新實現的。
<h3 class=fn>Q_LONG <a name="readLine"></a>QFile::readLine ( char * p, Q_ULONG maxlen )<tt> [虛]</tt>
</h3>
讀一行文本。
<p> 從這個文本中讀取最多<em>maxlen</em>字節或者行結束符到<em>p</em>,哪個先發生以哪個為準。返回實際讀取的字節數量,或者如果發生錯誤,返回-1。換行將不會被省略。
<p> 這個函數只對緩存文件有效。避免在以<a href="qfile.html#open">IO_Raw</a>標記方式打開的文件中使用<a href="#readLine">readLine</a>()。
<p> <p>也可以參考<a href="#readBlock">readBlock</a>()和<a href="qtextstream.html#readLine">QTextStream::readLine</a>()。
<p>從<a href="qiodevice.html#readLine">QIODevice</a>中重新實現的。
<h3 class=fn>Q_LONG <a name="readLine-2"></a>QFile::readLine ( <a href="qstring.html">QString</a> & s, Q_ULONG maxlen )
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 讀一行文本。
<p> 從這個文本中讀取最多<em>maxlen</em>字節或者行結束符到字符串<em>s</em>,哪個先發生以哪個為準。返回實際讀取的字節數量,或者如果發生錯誤,返回-1。換行將不會被省略。
<p> 這個函數只對緩存文件有效。避免在以<a href="qfile.html#open">IO_Raw</a>標記方式打開的文件中使用<a href="#readLine">readLine</a>()。
<p> 注意這個字符串只能作為無格式的Latin1字節來讀,不是Unicode。
<p> <p>也可以參考<a href="#readBlock">readBlock</a>()和<a href="qtextstream.html#readLine">QTextStream::readLine</a>()。
<h3 class=fn>bool <a name="remove"></a>QFile::remove ()
</h3>
移去當前指定文件名的文件。如果成功,返回真,否則返回假。
<p> 在文件被移去之前,它被關閉。
<h3 class=fn>bool <a name="remove-2"></a>QFile::remove ( const <a href="qstring.html">QString</a> & fileName )<tt> [靜態]</tt>
</h3>
這是一個重載成員函數,提供了方便。它的行為基本上和上面的函數相同。
<p> 移去文件<em>fileName</em>。如果成功,返回真,否則返回假。
<h3 class=fn>void <a name="setDecodingFunction"></a>QFile::setDecodingFunction ( <a href="qfile.html#DecoderFn">DecoderFn</a> f )<tt> [靜態]</tt>
</h3>
設置8位文件名的譯碼函數位<em>f</em>。默認使用本地指定的8位編碼。
<p> <p>也可以參考<a href="#encodeName">encodeName</a>()和<a href="#decodeName">decodeName</a>()。
<h3 class=fn>void <a name="setEncodingFunction"></a>QFile::setEncodingFunction ( <a href="qfile.html#EncoderFn">EncoderFn</a> f )<tt> [靜態]</tt>
</h3>
設置Unicode文件名的編碼函數為<em>f</em>。默認使用本地指定的8位編碼。
<p> <p>也可以參考<a href="#encodeName">encodeName</a>()。
<h3 class=fn>void <a name="setName"></a>QFile::setName ( const <a href="qstring.html">QString</a> & name )
</h3>
設置文件的名稱為<em>name</em>。這個名稱可以不包含路徑,也可以包含相對路徑或者絕對路徑。
<p> 如果文件已經被打開,不要調用這個函數。
<p> 如果文件名沒有路徑或者使用相對路徑,這是使用的路徑就是應用程序在<em>調用<a href="#open">open</a>()的時候</em>的當前路徑。
<p> 實例:
<pre>
QFile f;
QDir::<a href="qdir.html#setCurrent">setCurrent</a>( "/tmp" );
f.<a href="#setName">setName</a>( "readme.txt" );
QDir::<a href="qdir.html#setCurrent">setCurrent</a>( "/home" );
f.<a href="#open">open</a>( <a href="qfile.html#open">IO_ReadOnly</a> ); // 在Unix下打開“/home/readme.txt”
</pre>
<p> 注意Qt支持在所有的操作系統中使用目錄分隔符“/”。
<p> <p>也可以參卡<a href="#name">name</a>()、<a href="qfileinfo.html">QFileInfo</a>和<a href="qdir.html">QDir</a>。
<h3 class=fn><a href="qiodevice.html#Offset">Offset</a> <a name="size"></a>QFile::size () const<tt> [虛]</tt>
</h3>
返回文件大小。
<p>也可以參考<a href="#at">at</a>()。
<p>實例:<a href="statistics-example.html#x2628">table/statistics/statistics.cpp</a>。
<p>從<a href="qiodevice.html#size">QIODevice</a>中重新實現的。
<h3 class=fn>int <a name="ungetch"></a>QFile::ungetch ( int ch )<tt> [虛]</tt>
</h3>
<p> 把字符<em>ch</em>放回到這個文件中并且如果索引位置不是零的話,減一。
<p> 這個函數正常地被調用就是“撤銷”<a href="#getch">getch</a>()操作。
<p> 返回<em>ch</em>,否則,如果發生錯誤,返回-1。
<p> <p>也可以參考<a href="#getch">getch</a>()和<a href="#putch">putch</a>()。
<p>從<a href="qiodevice.html#ungetch">QIODevice</a>中重新實現的。
<!-- eof -->
<hr><p>
這個文件是<a href="index.html">Qt工具包</a>一部分。
版權所有 © 1995-2002
<a href="http://www.trolltech.com/">Trolltech</a>。保留所有權利。
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright © 2002
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">譯者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -