RubyはDirクラスやFileTestモジュールを用いることで、指定のファイルが存在しているか等の検査を行うことができます。
これによりファイルが存在しない場合のみ実行する処理などを実現することができます。
しかし、例えば暗号化されたゲームのGraphicsフォルダに対して、FileTestモジュールのexist?メソッドを使用しても、正常な結果が得られません。
テストプレイ時とゲーム公開後で異なる挙動をしめすことになってしまうので注意が必要です。
どうしてもツクール上でファイル検査を行いたい場合には、とりあえずファイルのロードを試みて、例外が発生するか否かを判断することで対応すると良いです。
module FileExist
# 画像の存在判定
def self.img_exist?(filename)
begin
a = Bitmap.new(filename)
rescue
return false
else
a.dispose
return true
end
end
# 画像以外の存在判定
def self.file_exist?(filename)
begin
load_data(filename)
rescue
return false
else
return true
end
end
end
p FileExist.img_exist?("Graphics/System/test.png")