MFCの基礎 - ファイル
ナビゲーションに移動
検索に移動
ファイルを開く
CFile File;
if(File.Open(_T("test.txt"), CFile::modeCreate| CFile::modeNoTruncate | CFile::modeWrite | CFile::typeText))
{
// To do something
}
file.Close();
第1引数はファイル名、第2引数はファイルモードを指定する。
主なモードを以下に記載する。
CFile::modeCreate ファイルを新規に作成する。既にファイルがある場合も削除して新規に作成する。
CFile::modeNoTruncate modeCreateと組み合わせて使用すると既にファイルがある場合は新規作成せずに開く。
CFile::modeRead ファイルを読み取り専用で開く。
CFile::modeReadWrite ファイルを読み書き可能で開く。
CFile::modeWrite ファイルを書き込み専用で開く。
CFile::shareDenyNone 他プロセスからも読み書きできる状態でファイルを開く。
CFile::shareExclusive ファイルを排他モードで開く。
CFile::typeText テキストモードを設定する。派生クラスで使う。
CFile::typeBinary バイナリモードを設定する。派生クラスで使う。
1行ずつ読み込む
CStdioFile File(_T("test.dat"), CFile::modeCreate| CFile::modeNoTruncate | CFile::modeRead | CFile::typeText);
CString strReadLine = _T("");
while(File.ReadString(strReadLine))
{
TRACE(strReadLine + _T("\n"));
}
ファイルに書き込む
CStdioFile File(_T("test.dat"), CFile::modeCreate| CFile::modeNoTruncate | CFile::modeWrite | CFile::typeText);
CString strWriteLine1 = _T("hoge\n");
File.WriteString(strWriteLine1);
CString strWriteLine2 = _T("piyo\n");
File.WriteString(strWriteLine2);
File.Close();
ファイルに追記する
CFileおよびCStdioFileには追記モードが存在しないので、ファイルを開いた後、書き込み位置を指定する必要がある。 下記のサンプルコードでは、ファイルを書き込みモードで開いた後、SeekToEndメソッドで書き込み位置を最後尾に移動する。
CStdioFile File(_T("test.dat"), CFile::modeCreate| CFile::modeNoTruncate | CFile::modeWrite | CFile::typeText);
File.SeekToEnd(); // 書き込み位置を最後尾に移動
CString strWriteLine1 = _T("hoge\n");
File.WriteString(strWriteLine1); // Write a line
CString strWriteLine2 = _T("piyo\n");
File.WriteString(strWriteLine2); // Write a line
File.Close();