TNB Library
公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CAbstractFile クラス

抽象ファイルクラス [詳解]

#include <TnbFile.h>

+ CAbstractFile の継承関係図

公開型

enum  EMode { READ , CREATE , ACCESS , WRITE }
 オープンモード [詳解]
 

公開メンバ関数

 CAbstractFile (void)
 コンストラクタ [詳解]
 
bool CanRead (void) const
 [確認] 読み込み可能か [詳解]
 
bool CanWrite (void) const
 [確認] 書込み可能か [詳解]
 
void Close (void)
 [操作] クローズ [詳解]
 
virtual HANDLE GetHandle (void) const
 [取得] ファイルハンドル取得 [詳解]
 
bool GetInformation (LPBY_HANDLE_FILE_INFORMATION _lpFileInformation) const
 [取得] ファイル情報取得 [詳解]
 
LPCTSTR GetOpenName (void) const
 [取得] オープン名取得 [詳解]
 
LONGLONG GetSize (void) const
 [取得] ファイルサイズ取得 [詳解]
 
bool OpenOnMode (LPCTSTR lpszName, EMode eMode=ACCESS, bool isShare=true)
 [操作] モード付オープン [詳解]
 
 operator HANDLE (void) const
 [取得] ファイルハンドル取得 [詳解]
 
size_t Read (size_t size, LPVOID _P) const
 [取得] ファイル読み込み [詳解]
 
LONGLONG Seek (LONGLONG llOffset, IReader::ESeekMode eSeek=IReader::TOP) const
 [操作] シーク. [詳解]
 
void SetCreatedAttributes (DWORD attr)
 [設定] 属性設定. [詳解]
 
virtual ~CAbstractFile (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual void SetHandle (HANDLE h)
 [設定] ファイルハンドル設定 [詳解]
 

詳解

抽象ファイルクラス

参照
CFileReader , CFileWriter のためのクラスです。
日付
06/05/01 新規作成
09/04/24 Hideクラスへ。
11/08/30 排他オプションの設定、 ReadOnly オープンなら 読込排他のみ設定するように変更。

TnbFile.h35 行目に定義があります。

列挙型メンバ詳解

◆ EMode

enum EMode

オープンモード

列挙値
READ 

読み込みオープン(既存でなければエラーになります)

CREATE 

新規読み書きオープン(既存ファイルは消されます)

ACCESS 

読み書きオープン(既存でなければ作成されます)

WRITE 

書き込みオープン(既存でなければ作成されます)

TnbFile.h39 行目に定義があります。

構築子と解体子

◆ CAbstractFile()

CAbstractFile ( void  )

コンストラクタ

TnbFile.h48 行目に定義があります。

◆ ~CAbstractFile()

virtual ~CAbstractFile ( void  )
virtual

デストラクタ

TnbFile.h53 行目に定義があります。

関数詳解

◆ CanRead()

bool CanRead ( void  ) const

[確認] 読み込み可能か

戻り値
true可能
false不可能

TnbFile.h134 行目に定義があります。

◆ CanWrite()

bool CanWrite ( void  ) const

[確認] 書込み可能か

戻り値
true可能
false不可能

TnbFile.h144 行目に定義があります。

◆ Close()

void Close ( void  )

[操作] クローズ

覚え書き
複製している場合、複製したすべてのハンドルが閉じないと実際のファイルは クローズされません。

TnbFile.h63 行目に定義があります。

◆ GetHandle()

virtual HANDLE GetHandle ( void  ) const
virtual

[取得] ファイルハンドル取得

戻り値
ハンドル

TnbFile.h248 行目に定義があります。

◆ GetInformation()

bool GetInformation ( LPBY_HANDLE_FILE_INFORMATION  _lpFileInformation) const

[取得] ファイル情報取得

参照
http://msdn.microsoft.com/library/ja/jpfileio/html/_win32_GetFileInformationByHandle.asp
引数
[out]_lpFileInformation取得情報の格納場所
戻り値
true取得成功
false失敗

TnbFile.h156 行目に定義があります。

◆ GetOpenName()

LPCTSTR GetOpenName ( void  ) const

[取得] オープン名取得

戻り値
名前

TnbFile.h239 行目に定義があります。

◆ GetSize()

LONGLONG GetSize ( void  ) const

[取得] ファイルサイズ取得

参照
http://msdn.microsoft.com/library/ja/jpfileio/html/_win32_GetFileSize.asp
戻り値
0以上ファイルサイズ
マイナス取得失敗 ( GetLastError() により詳細取得可能)

TnbFile.h168 行目に定義があります。

◆ OpenOnMode()

bool OpenOnMode ( LPCTSTR  lpszName,
EMode  eMode = ACCESS,
bool  isShare = true 
)

[操作] モード付オープン

覚え書き
特殊なオープンをする以外は、サブクラスの Open系メソッドを使用してください。
参照
http://msdn.microsoft.com/library/ja/jpfileio/html/_win32_createfile.asp
引数
lpszNameオープンするファイル名。
eModeオープンモード。省略なら access になります。
isShare省略かtrueなら、共有モードでオープンします。
戻り値
trueオープン成功
falseオープン失敗 ( GetLastError() により詳細取得可能)

TnbFile.h88 行目に定義があります。

◆ operator HANDLE()

operator HANDLE ( void  ) const

[取得] ファイルハンドル取得

戻り値
ハンドル

TnbFile.h230 行目に定義があります。

◆ Read()

size_t Read ( size_t  size,
LPVOID  _P 
) const

[取得] ファイル読み込み

引数
[in]size読み込みサイズ。
[out]_P読み込みアドレス。 size 分書き込める領域である必要が有ります。
戻り値
読み込めたサイズ。
例外
CReadFailureException読み込みに失敗すると、スローされます。

TnbFile.h211 行目に定義があります。

◆ Seek()

LONGLONG Seek ( LONGLONG  llOffset,
IReader::ESeekMode  eSeek = IReader::TOP 
) const

[操作] シーク.

ファイルポインタを移動します。

参照
http://msdn.microsoft.com/library/ja/jpfileio/html/_win32_SetFilePointer.asp
引数
llOffsetファイルポインタの移動数。
eSeek移動開始ファイルポインタ位置。省略すると TOP になります。
戻り値
0以上シーク成功。数値は、現在のファイルポインタ
マイナスシーク失敗 ( GetLastError() により詳細取得可能)

TnbFile.h189 行目に定義があります。

◆ SetCreatedAttributes()

void SetCreatedAttributes ( DWORD  attr)

[設定] 属性設定.

覚え書き
CreateFile 時の属性値の設定が可能です。
引数
attr属性。

TnbFile.h73 行目に定義があります。

◆ SetHandle()

virtual void SetHandle ( HANDLE  h)
protectedvirtual

[設定] ファイルハンドル設定

引数
hハンドル

TnbFile.h258 行目に定義があります。