0

ファイルオブジェクトしか持っていない場合、現在のファイル名を見つけるにはどうすればよいですか?

このファイルはユーザーがアップロードしたもので、その名前を見つけたいのですが、を使用するfile_object.pathと、現在の名前ではなく、ファイルが作成されたときの名前が表示されます。

それは数字と文字のランダムな束のように見える名前を生み出しました。サンプルファイルは、ユーザーがアップロードするファイルの種類である私が作成した証明書でした。混乱しないように、現在のファイル名を表示するようにします。

4

1 に答える 1

2

短い答えは「できません」です。

理由を理解するために、典型的なファイルシステムでは、ファイルは多くのリンクから参照できる単なるノード (または Unix/Linux で言えば i ノード) であり、シンボリックリンクについて話しているわけではありません。

例えば:

$ echo "i am foo" > foo
$ cat foo
i am foo
$ ln foo bar    # this is a hard link, not a symlink
$ rm foo
$ cat bar
i am foo
$ rm bar
$ cat bar
cat: bar: No such file or directory
$ cat foo
cat: foo: No such file or directory

実際、File::Stat の Ruby ドキュメントを見ると...

http://www.ruby-doc.org/core-1.9.3/File/Stat.html

nlink...ファイルへのハード リンクの数を返すメソッドがあることがわかります。inspectまた、ファイルの属性を返すメソッドがあることもわかりますが、名前は返されません。

于 2012-05-13T01:54:26.907 に答える