CTRPF関数まとめ File.hpp編

CTRPFの関数について少し解説していこうと思います。いつまで続くかな?
間違いがあるかもしれませんが、ご了承ください。

目次:

Fileクラスとは?

Fileクラスにはファイルを操作する関数があります。(ファイル作成、削除、書き込み、読み込み etc...)
普通はファイルクラスはあまり使わないと思いますが、便利な機能がたくさんあるCTRPFを作りたい時には欠かせませんね!!!!!!!!!!!!!!!!!!!!!!!!!

Fileクラスの使い方

File::Create

ファイルを新規作成します。
戻り値: OPResult
使用例:

File::Create("file.txt"); //プラグインと同じフォルダに"file.txt"を作成する。
File::Create("../file.txt"); //プラグインがあるパスの1つ前のフォルダに"file.txt"を作成する。

File::Rename

ファイルの名前を変更します。
戻り値: OPResult
使用例:

File::Rename("file.txt", "file2.txt") //file.txtの名前を、"file2.txt"に変更する。

File::Exists

ファイルの存在確認をします。
戻り値: ファイルが存在したら1が返ってくる。存在しなかったら0が返ってくる。
使用例:

if(File::Exists("file.txt")) //プラグインと同じフォルダに"file.txt"があった場合

File::Open

ファイルを開きます。
戻り値: OPResult
使用例:

File file;
File::Open(file,"file.txt");//file.txtを開く

File::Close

ファイルを閉じます。
戻り値: OPResult
使用例:

File file;
File::Open(file,"file.txt");//file.txtを開く
file.Close();//file.txtを閉じる

File::Read

ファイルの中身を読みます。
戻り値: OPResult
使用例:

//あらかじめ、file.binに0xffffffffを書き込んでおく
File file;
u32 buf;
File::Open(file,"file.bin");//file.binを開く
file.Read((void*)&buf, sizeof(u32));//bufにfile.binの内容をu32のサイズ(4byte)分読み込む
file.Close();//file.binを閉じる
//buf = ffffffff;

File::Write

ファイルに書き込みます。
戻り値: OPResult
使用例:

File file;
u32 data = 0xffffffff;
File::Open(file,"file.bin");//file.binを開く
file.Write((void*)&data, sizeof(u32));//dataの内容をにfile.binに書き込む
file.Flush(); //後ほど説明
file.Close();//file.binを閉じる

File::WriteLine

ファイルに文字列を書き込みます。
自動で改行が追加されます。
戻り値: OPResult
使用例:

File file;
File::Open(file,"file.txt");//file.txtを開く
file.WriteLine("Hello World!");//flle.txtに"Hello World!"と書き込まれる。
file.Flush(); //後ほど説明
file.Close();//file.txtを閉じる

File::Seek

ファイルポインタの位置を変更します。
戻り値: OPResult
使用例:

//あらかじめ、file.binに、バイナリデータ 11 22 33 44と書いておく
File file;
u8 buf;
File::Open(file,"file.bin");
file.Seek(1);//ファイルポインタを1つ動かす
file.Read((void*)&buf,sizeof(u8));//bufには0x22が入れられる。
file.Close();

File::Tell

ファイルポインタの現在位置を取得します。
戻り値: u64 ファイルポインタの位置
使用例:

File file;
File::Open(file,"file.bin");
file.Seek(1);//ファイルポインタを1つ動かす
u64 fp = file.Tell(); // 上の行でポインタを1つ動かしたので、fp=1になる
file.Close();

File::Rewind

ファイルポインタの位置をファイルの最初の位置にする。
戻り値: なし
使用例:

File file;
File::Open(file,"file.bin");
file.Seek(1);//ファイルポインタを1つ動かす
file.Rewind(); //ファイルポインタを最初の位置にする
u64 fp = file.Tell(); //上の行でRewindしたため、0が返ってくる
file.Close();

File::Flush

ファイルを保存する。
File::Writeだけだと、実際にファイルに保存されないので、この関数で、実際にファイルを保存させる。(File::Create/Removeの場合は不要、WriteやWriteLineを使用した場合のみ)
戻り値: OPResult
使用例:

File file;
File::Open(file,"file.txt");
file.WriteLine("Hello");
file.Flush(); //保存する
file.Close();

File::GetSize

ファイルのサイズを取得する。
戻り値: u64 ファイルサイズ
使用例:

File file;
File::Open(file,"file.bin");
u64 size = file.GetSize();//ファイルサイズを取得
file.Close();

File::SetPriority

知らん

File::Dump

アドレスの値をダンプします
戻り値: OPResult
使用例:

File file;
File::Open(file,"file.bin");
file.Dump(0x100000,4);//0x100000のアドレスの値を4byte分ダンプ
file.Flush(); //保存
file.Close();

File::Inject

Dumpと逆のことをします。
ファイルの内容をメモリに書き込みます。
戻り値: OPResult
使用例:

//あらかじめ、file.binにバイナリデータ ff ff ff ffと書いておく
File file;
File::Open(file,"file.bin");
file.Inject(0x100000,4);//0x100000の値が0xffffffffになる
file.Close();

File::IsOpen

ファイルが開かれているか確認します。
戻り値: bool
使用例:

File file;
File::Open(file,"file.bin");
if(file.IsOpen())//ファイルがちゃんと開かれていたら
    OSD::Notify("File is Opening");
file.Close();

File::GetFullName

ファイルパスを取得します。
戻り値: std::string ファイルパス
使用例:

File file;
File::Open(file,"file.bin");
std::string name = file.GetFullName();//"/luma/plugins/0004000000155100/file.bin"が返ってくる
file.Close();

File::GetName

ファイル名を取得します。
戻り値: std::string ファイル名
使用例:

File file;
File::Open(file,"file.bin");
std::string name = file.GetName();//"file.bin"が返ってくる
file.Close();

File::GetExtension

ファイルの拡張子を取得します。
戻り値: std::string 拡張子
使用例:

File file;
File::Open(file,"file.bin");
std::string ets = file.GetExtension();//"bin"が返ってくる
file.Close();

File::File

コンストラク
File::Open以外の開き方
戻り値: なし
使用例:

File file1("file.bin"); // 1

File file2; 
File::Open(file2,"file.bin");//2

//1と2は同じ

終わりに

疲れた。
次回は無いかも。