vc++基础班[21]---文件的基本操作之CFile
①、文件的創(chuàng)建、打開、關(guān)閉;
文件的創(chuàng)建、打開:CFile::Open
文件的關(guān)閉:CFile::Close
CFile::modeCreate:以新建方式打開,如果文件不存在,則新建;如果文件已存在,把該文件長度置零,即清除文件原有內(nèi)容;
CFile::modeNoTruncate:以追加方式打開,如果文件存在,打開并且不將文件長度置零,如果文件不存在,會拋出異常。
一般與CFile::modeCreate一起使用,則文件不存在時(shí),新建一個(gè)文件;存在就進(jìn)行追加操作;
CFile::modeReadWrite:以讀寫方式打開文件;
CFile::modeRead:以只讀方式打開文件;
CFile::modeWrite:以只寫方式打開文件;
CFile::modeNoInherit:阻止文件被子進(jìn)程繼承;
CFile::ShareDenyNone:不禁止其它進(jìn)程讀或?qū)懺L問,打開文件。如果文件已被其它進(jìn)程以兼容模式打開,則Create失??;
CFile::ShareDenyRead:打開文件,禁止其它進(jìn)程讀此文件。如果文件已被其它進(jìn)程以兼容模式打開,或被其它進(jìn)程讀,則Create失敗;
CFile::ShareDenyWrite:打開文件,禁止其它進(jìn)程寫此文件。如果文件已被其它進(jìn)程以兼容模式打開,或被其它進(jìn)程寫,則Create失?。?br />
CFile::ShareExclusive:以獨(dú)占模式打開文件,禁止其它進(jìn)程對文件的讀寫。如果文件已經(jīng)以其它模式打開讀寫(即使被當(dāng)前進(jìn)程),則構(gòu)造失敗;
CFile::ShareCompat:此標(biāo)志在32位MFC中無效。此標(biāo)志在使用CFile::Open時(shí)映射為CFile::ShareExclusive;
CFile::typeText:對回車換行設(shè)置特殊進(jìn)程(僅用于派生類);
CFile::typeBinary:設(shè)置二進(jìn)制模式(僅用于派生類);
②、文件的讀寫:
讀操作:CFile::Read //當(dāng)函數(shù)的返回值小于參數(shù)指定讀取的數(shù)值時(shí),表明已經(jīng)讀到了文件的末尾;
寫操作:CFile::Write
③、讀取或?qū)懭胍恍袛?shù)據(jù):class CStdioFile : public CFile
從文件中讀一行數(shù)據(jù):CStdioFile::ReadString
寫一行數(shù)據(jù)到文件中:CStdioFile::WriteString
④、文件指針位置的設(shè)置:
將文件的指針移動到文件的任意位置:CFile::Seek //※ 如果指定為 CFile::end 的時(shí)候,偏移量必須為負(fù)數(shù);
將文件指針移動到文件的頭部:CFile::SeekToBegin
將文件指針移動到文件的尾部:CFile::SeekToEnd
⑤、刷新緩存數(shù)據(jù)到文件:CFile::Flush
######################################################
MFC 中的 CFile 及其派生類中沒有提供直接進(jìn)行文件的復(fù)制操作,因而要借助于SDK API;
SDK中的文件相關(guān)函數(shù)常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()
⑥、文件的復(fù)制:CopyFile
若要復(fù)制文件夾,可以在目標(biāo)位置新建一文件夾,然后將源文件夾里面的文件進(jìn)行遍歷,一個(gè)一個(gè)的復(fù)制到目標(biāo)文件夾內(nèi)即可!
⑦、文件的重命名或移動[適用于文件夾]:
static CFile::Rename 重命名文件;
MoveFile,※※※注意:該函數(shù)不僅可以移動文件,還可以移動目錄,包括目錄中的文件和子目錄,但是目錄的移動只能限制在一個(gè)驅(qū)動器;
即:統(tǒng)一驅(qū)動器內(nèi)為重命名操作,不同驅(qū)動器內(nèi)為移動操作;
⑧、文件的刪除:CFile::Remove 或 DeleteFile
如果文件有只讀屬性怎么辦?普通的方法還能刪除成功嗎?
總結(jié)
以上是生活随笔為你收集整理的vc++基础班[21]---文件的基本操作之CFile的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPA 系列教程16-继承-联合子类-J
- 下一篇: YARN是什么