0

開いたFileオブジェクトを手渡されたとしますが、それがどのモードで開かれたかわかりません (例: 'r'、'w'、'w+')。

ファイルが開かれているモードをどのように判断しますか?

私が知る限り、これに対するIO方法はありませんが、何かが欠けている可能性があります。

モードごとに個別のテストを記述する必要がある場合、理想的にはif、ポインターの位置 (またはファイルの内容) を変更しない単一のメソッドまたは 1 つのライナー ステートメントです。

4

2 に答える 2

2

次のいずれかを試すことができます。

  • ファイル記述子に 1 文字を書き込み、シークを解除します。成功した場合は書き込みモードになり、それ以外の場合は例外が発生します。

  • fstatメソッドの情報を収集してみてください。

于 2012-12-05T03:44:18.310 に答える
-1

Ruby ファイル オブジェクトには次のメソッドがあります。

File(filename).readable?
File(filename).writeable?
File(filename).executeable?
于 2012-12-05T03:40:12.507 に答える