この記事は2018年08月12日に投稿しました。
目次
プロフェッショナル VISUAL C++ 2010 (MSDNプログラミングシリーズ)
- 作者: エディフィストラーニング株式会社,矢嶋聡
- 出版社/メーカー: 日経BP
- 発売日: 2012/07/05
- メディア: 単行本
- この商品を含むブログ (1件) を見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC++/CLIの話です。
以前、テキストファイルの読み/書きを紹介しましたが、
その際ファイルの開く方法については特に説明しませんでした。
今回、既存ファイルを開く必要があったため、ファイルのオープン方法を指定する方法を調べてみました。
2. ファイルの開く方法の指定
ファイルの開く方法を指定するにはFileStreamクラスを使用します。
FileStreamクラスのコンストラクタ―の第2引数FileModeに、ファイルを開く方法を示す定数を指定します。
コンストラクタ―
/// path: パス名 /// mode: 開く方法を示す定数 public FileStream( string path, FileMode mode )
以下がFileModeで指定できる定数です。
Read/Write欄は、ファイルアクセス許可のRead/Writeを指定した場合に使用できるかどうかを示します。
(ファイルアクセス許可については後日説明します)
- 〇 : 使用可
- × : 使用不可
定数名 | Read | Write | 説明 |
---|---|---|---|
Append | × | 〇 | 既存ファイルを開きます。 既存ファイルが存在しない場合は新規ファイルを作成します。 データは末尾に追加されます。 |
Create | × | 〇 | 新規ファイルを作成します。 既存ファイルが存在する場合は上書きされます。 |
CreateNew | × | 〇 | 新規ファイルを作成します。 既存ファイルが存在する場合は例外が発生します。 |
Open | 〇 | 〇 | 既存ファイルを開きます。 既存ファイルが存在しない場合は例外が発生します。 |
OpenOrCreate | 〇 | 〇 | 既存ファイルを開きます。 既存ファイルが存在しない場合は新規ファイルを作成します。 |
Truncate | × | 〇 | 既存ファイルを開きます。 内容はクリアされます。 |
実装例
ファイルを開く方法を指定して、ファイルに書き出すメソッドの実装例です。
/// ファイルを開く方法を指定して、ファイルにデータを書き出します。 /// /// param path: 書き込むファイルのパス名 /// param data: ファイルに書き込むデータ /// param mode: ファイルを開く方法を示す定数 /// return: 書き込み結果 true:成功 / false:失敗 bool WriteFile(String^ path, String^ data, FileMode mode) { StreamWriter^ sw = nullptr; try { // ファイルストリームを作成します。 FileString^ fs = gcnew FileStream(path, mode); // ファイルストリームを指定して、ストリームライターを作成します。 // 文字エンコーディングはデフォルトのUTF-8になります。 sw = gcnew StreamWriter(fs); sw->Write(data); sw->Flush(); } catch (Exception^) { return false; } finally { if (sw != nullptr) { sw->Close(); } } }
API Reference
FileStreamクラス
FileMode列挙子
StreamWriterクラス
3. おわりに
以前紹介した
でStreamWriterクラスはパス名のみ指定していました。
この場合
- ファイルが存在しない場合は新規作成
- ファイルが存在する場合は上書き
になります。
知識・スキルの販売サイト【ココナラ】
C++/CLI & OpenCV画像処理GUIプログラミング―リッチなユーザーインターフェースを持つ画像処理プロ
- 作者: 北山洋幸
- 出版社/メーカー: カットシステム
- 発売日: 2013/03/01
- メディア: 単行本
- この商品を含むブログ (3件) を見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688