ファイル
ファイル操作に関する機能を提供します。
Engine.Fileでは、ファイルを読み込む先のディレクトリ・パッケージの指定やディレクトリのパッケージ化が可能です。
そして、ファイルを読み込むことができ、StaticFile.Createメソッドを用いてStaticFileインスタンスを作成するか、StreamFile.Createメソッドを用いてStreamFileインスタンスを作成する方法の2種類があります。
Engine.File
Engine.File.AddRootDirectoryメソッドでファイルを読み込む時のルートを指定します。 一切ルートを指定していないと、カレントディレクトリから相対的にファイルを読み込みます。 ルートディレクトリが指定されていると、ルートディレクトリから相対的にファイルを読み込みます。 また、Engine.File.AddRootPackageメソッドで複数のファイルを1つにまとめたパッケージをルートに指定することが可能で、パッケージ内からファイルを読み込みます。 パスワード付きのパッケージをルートに指定する場合、Engine.File.AddRootPackageWithPasswordメソッドを使用してください。
StaticFile
StaticFileは、ファイルを一括で全て読み込むクラスです。 ファイルを読み込んでStaticFileインスタンスを生成するにはCreateメソッドを使います。
読み込んだファイルの内容は、Bufferで、Byte配列として得られます。
StreamFile
StreamFileは、ファイルを部分的に読み込むクラスです。 ファイルを読み込んでStreamFileインスタンスを生成するにはCreateメソッドを使います。
Readメソッドによって、指定されたサイズの分だけ、ファイルに格納されているデータを読み込みます。
読み込んだ内容は、TempBufferで、Byte配列として得られます。 また、現在読み込まれているデータのサイズは、TempBufferSizeで得られます。
サンプル
StaticFileによるファイル読み込み
using System;
using System.Text;
using Altseed2;
namespace Sample
{
class FileStaticFile
{
[STAThread]
static void Main(string[] args)
{
// Altseed2 を初期化します。
if (!Engine.Initialize("StaticFile", 640, 480)) return;
// ファイルを読み込みます。
var staticFile = StaticFile.Create(@"TestData/IO/test.txt");
// バイト配列をUTF8として、string型に変換します。
var text = Encoding.UTF8.GetString(staticFile.Buffer);
// コンソールに出力します。
Console.WriteLine(text);
// Altseed の終了処理をします。
Engine.Terminate();
}
}
}
StreamFileによるファイル読み込み
using System;
using System.Text;
using Altseed2;
namespace Sample
{
class FileStreamFile
{
[STAThread]
static void Main(string[] args)
{
// Altseed2 を初期化します。
if (!Engine.Initialize("StaticFile", 640, 480)) return;
// ファイルを読み込みます。
var streamFile = StreamFile.Create(@"TestData/IO/test.txt");
// メインループ。
// Altseed のウインドウが閉じられると終了します。
while (Engine.DoEvents())
{
// Altseedを更新します。
Engine.Update();
// 1バイト読み込む
var size = streamFile.Read(1);
// バイト配列をUTF8として、string型に変換します。
var text = Encoding.UTF8.GetString(streamFile.TempBuffer);
// コンソールに出力します。
Console.WriteLine(text);
// 新たに読み込んだデータが0なら終了させます。
if (size == 0) break;
}
// Altseed の終了処理をします。
Engine.Terminate();
}
}
}