Class CriFsStdio
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriFs.dll
Syntax
public class CriFsStdio : IDisposable
Properties
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
Type | Description |
---|---|
NativeHandleIntPtr |
Methods
CloseFile()
Declaration
[Obsolete("CriFsStdio.CloseFile() is Obsolete. use CriFsStdio.Dispose().")]
public CriErr.Error CloseFile()
Returns
Type | Description |
---|---|
CriErr.Error |
Dispose()
ANSI C に準じたファイルクローズ
Declaration
public void Dispose()
Remarks
説明: 指定したファイルをクローズします。 第一引数には、クローズしたいファイルのCriFsStdioオブジェクトを指定します。
See Also
GetFileSize()
ANSI C に準じたAPIに基づくファイルサイズ取得
Declaration
public long GetFileSize()
Returns
Type | Description |
---|---|
long | 指定したオブジェクトが有効であれば、ファイルサイズを返します。 |
Remarks
説明: 指定したファイルのサイズを取得します。 第一引数には、サイズを取得したいファイルのCriFsStdioオブジェクトを指定します。
OpenFile(CriFsBinder, IntPtr, IntPtr)
ANSI C に準じたファイルオープン
Declaration
public static CriFsStdio OpenFile(CriFsBinder bndr, IntPtr fname, IntPtr mode)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | bndr | オープンしたいファイルがバインドされているCriFsBinderのオブジェクト |
IntPtr | fname | オープンしたいファイルパス |
IntPtr | mode | オープンモード ("r":読み込み専用モード,"w":書き込み専用モード) |
Returns
Type | Description |
---|---|
CriFsStdio | 成功した場合、有効なCriFsStdioオブジェクトを返します。 失敗した場合はnullを返します。 |
Remarks
説明: 指定されたファイルをオープンします。 第一引数には、オープンしたいファイルがバインドされているバインダーを指定します。 プラットフォーム標準のファイルパスからファイルをオープンしたい場合、第一引数にはnullを指定します。 第二引数には、オープンしたいファイルパスを文字列で指定します。 第三引数は、オープンのモードです。"r"を指定すると読み込み専用モード、 "w"を指定すると書き込み専用モードでファイルをオープンします。 書き込み専用モードは、ファイル書き込みをサポートしているプラットフォームでのみ正常に動作し、 未サポートのプラットフォームではエラーコールバックが発生し、オープンは失敗します。
備考: ファイルの書き込みは以下のルールで行われます。 - 指定したファイルが存在しない場合、新規にファイルを作成。 - 指定したファイルが既に存在する場合、既存ファイルを編集します。 (既存ファイルが削除されることはありません。) 既存ファイルを削除して新規にファイルの書き込みを行いたい場合には、 本関数を実行する前に RemoveFile(CriFsBinder, ArgString, out RemoveResult) 関数でファイルの削除を行ってください。
See Also
ReadFile(long, IntPtr, long)
ANSI C に準じたAPIに基づくファイルからのデータ読込
Declaration
public long ReadFile(long rsize, IntPtr buf, long bsize)
Parameters
Type | Name | Description |
---|---|---|
long | rsize | 読込要求サイズ(byte) |
IntPtr | buf | 読込先バッファー |
long | bsize | 読込先バッファーのサイズ(byte) |
Returns
Type | Description |
---|---|
long | 読込成功 読み込めたサイズ(byte) 読込失敗 -1 |
Remarks
説明: ファイルからデータを指定サイズ(byte)分読み込みます。 第一引数には、データの読込元であるファイルのCriFsStdioオブジェクトを指定します。 第二引数には、読み込むサイズを指定します。 第三引数には、読み込んだデータの書き込み先バッファーを指定します。 第四引数には、読み込んだデータの書き込み先バッファーサイズを指定します。
注意: 戻り値は、常に読込要求サイズ以下になることに注意してください。 例えばファイル終端では、戻り値が読込要求サイズより小さくなることがありますが、 読込に失敗しているわけではありません。読込に失敗した場合、-1を返します。
RemoveFile(CriFsBinder, ArgString, out RemoveResult)
ファイルの削除
Declaration
public static CriErr.Error RemoveFile(CriFsBinder binder, ArgString path, out CriFsStdio.RemoveResult result)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | 削除したいファイルがバインドされているCriFsBinderのオブジェクト |
ArgString | path | 削除するファイルのパス |
CriFsStdio.RemoveResult | result | 削除結果 |
Returns
Type | Description |
---|---|
CriErr.Error | エラーコード |
Remarks
説明: 指定したファイルを削除します。 ファイルの削除に成功した場合、出力値( result )に FileRemoved がセットされます。 指定したファイルが存在しない場合や、読み込み専用ファイルを削除しようとした場合、 ファイルの削除に失敗し、出力値( result )に IoErrorOccurrd がセットされます。 本関数は、ファイル書き込みをサポートしているプラットフォームにおいてのみ使用することができます。
備考: 指定した引数が不正な場合や、ファイル削除用のオブジェクトが確保できない場合、 出力値( result )に NotExecuted がセットされ、 関数の戻り値がエラー値( Ok 以外の値)になります。
SeekFile(long, SEEKTYPE)
ANSI C に準じた ファイルリードオフセットのシーク
Declaration
public long SeekFile(long offset, CriFsStdio.SEEKTYPE seekType)
Parameters
Type | Name | Description |
---|---|---|
long | offset | シークのオフセット(byte) |
CriFsStdio.SEEKTYPE | seekType | シーク開始位置の指定 |
Returns
Type | Description |
---|---|
long | 成功 0 失敗 -1 |
Remarks
説明: 指定したファイルのリードオフセットをシークします。 第一引数には、リードオフセットをシークしたいファイルの、CriFsStdioオブジェクトを指定します。 第二引数には、シークのオフセットを指定します。単位はbyteです。
注意: ファイル先頭より手前にシークすることは出来ません。ファイルリードオフセットがファイル先頭より 手前になるようシークオフセットを指定した場合、シーク結果のファイルリードオフセットはファイル先頭になります。 一方、ファイル終端を超えたシークは可能です。 また、指定のCriFsStdioオブジェクトが中間バッファーを持つ場合、 本関数で中間バッファーの有効範囲外にシークすると、中間バッファーの内容が破棄されます。
See Also
SetInterstageBuffer(in byte, uint)
ANSI C に準じたAPIに基づくファイル読込用中間バッファーの設定
Declaration
public long SetInterstageBuffer(in byte tempBuffer, uint tempBufferSize)
Parameters
Type | Name | Description |
---|---|---|
byte | tempBuffer | 中間バッファーの先頭アドレス |
uint | tempBufferSize | 中間バッファーのサイズ(byte) |
Returns
Type | Description |
---|---|
long | 中間バッファー設定後のファイル読込位置 |
Remarks
説明: 指定したファイルを読み込む際の中間バッファーを設定します。 第一引数には、中間バッファーを設定したいCriFsStdioオブジェクトを指定します。 第二引数には、中間バッファーとして利用するメモリ領域の先頭アドレスを指定します。 nullを指定した場合、中間バッファーを使いません。 第三引数には、中間バッファーのサイズを指定します。単位はbyteです。 0を指定した場合、第二引数に有効なアドレスを指定していても、中間バッファーを使いません。
注意: OpenFile(CriFsBinder, IntPtr, IntPtr)()で得られたファイルオブジェクトは、デフォルトでは中間バッファーを持ちません。 中間バッファーが必要な場合、本関数で設定する必要があります。 中間バッファーを設定すると、最大で temp_buffer_size 分のデータをファイルから 中間バッファーへ読み込むようになります。 中間バッファー内にデータがある限り、 ReadFile(long, IntPtr, long)()によるファイル読込はメモリコピーになるため、 連続して細かいファイル読込を行う場合 物理的なファイルアクセスの発生頻度を抑えることができます。 ただし、SeekFile(long, SEEKTYPE)()で中間バッファーの有効範囲外にシークすると、 中間バッファーの内容が破棄されます。
See Also
SetReadPriority(Priority)
CriFsStdioオブジェクトのファイル読み込みプライオリティを変更
Declaration
public CriErr.Error SetReadPriority(CriFsLoader.Priority prio)
Parameters
Type | Name | Description |
---|---|---|
CriFsLoader.Priority | prio | 変更したいプライオリティの値 |
Returns
Type | Description |
---|---|
CriErr.Error | Ok 成功 その他 失敗 |
Remarks
説明: ReadFile(long, IntPtr, long)()を使ったファイル読み込み優先度を、CriFsStdioオブジェクト毎に設定します。
TellFileOffset()
ANSI C に準じたファイルリードオフセットの取得
Declaration
public long TellFileOffset()
Returns
Type | Description |
---|---|
long | 指定したオブジェクトが有効であれば、リードオフセット(byte)を返します。 |
Remarks
説明: 指定したファイルの読込位置を取得します。 第一引数には、読込位置を取得したいファイルの、CriFsStdioオブジェクトを指定します。
See Also
WriteFile(long, IntPtr, long)
ANSI C に準じたAPIに基づくデータのファイル書込
Declaration
public long WriteFile(long rsize, IntPtr buf, long bsize)
Parameters
Type | Name | Description |
---|---|---|
long | rsize | 書込要求サイズ(byte) |
IntPtr | buf | 書込元バッファー |
long | bsize | 書込元バッファーのサイズ(byte) |
Returns
Type | Description |
---|---|
long | 書込成功 書き込めたサイズ(byte) 書込失敗 -1 |
Remarks
説明: ファイルからデータを指定サイズ(byte)分読み込みます。 第一引数には、データの書込先であるファイルのCriFsStdioオブジェクトを指定します。 第二引数には、書き込むサイズを指定します。 第三引数には、書込元となるデータのバッファーを指定します。 第四引数には、書込元となるデータのバッファーサイズを指定します。
注意: 戻り値は、書込に成功したサイズ(byte)です。 書込に失敗した場合、-1を返します。 本関数は、ファイル書き込みをサポートしているプラットフォームにおいてのみ使用することができます。 ファイル書き込みをサポートしていないプラットフォームで本関数を呼び出すと、 リンク時にシンボルが見つからず、ビルドエラーになります。