使用文件句柄获取文件名(或删除文件)

2022-08-30 08:45:39

是否有可能从文件句柄获取文件名?或者如何删除只有句柄的文件?


答案 1

stream_get_meta_data。它适用于从 tmpfile() 获取的流。如果您在常规文件指针上调用它,则可能只获得基名。

$meta_data = stream_get_meta_data($stream_or_file_pointer);
$filename = $meta_data["uri"];
echo $filename;

tmpfile() 的示例:

"/private/var/folders/v3/n54x13jx5v7610fw9dm0wcxm0000gn/T/phpCJvevP"

fopen(“somefile”, “r”) 的例子:

"test"

答案 2

奈斯。Afaik在PHP中没有直接的功能。但是在Linux上,你可以做到

$fp = fopen('somefile', 'r');
$stat = fstat($fp);
$inode = $stat['ino'];
system("find -inum $inode", $result);
echo $result;

这是未经测试的,因此可能需要调整。

编辑显然,有更简单的解决方案


推荐