首页 > 解决方案 > 如何在目录中创建具有唯一名称的目录

问题描述

我通过创建了一个文件

$my_dir = '/var/example'

$file_path = tempnam( $my_dir, '' );

然后我尝试将临时文件($file_path)转换为目录。

没有功能tempdir

如何在内部创建具有唯一文件名的目录$my_dir?甚至,如果$my_dir包含很多子目录。

目录名称必须是唯一的,不一定是随机的。

建议的问题和答案 - 不是我的问题的答案。

如果存在按uniqid函数生成名称的子目录,建议的答案可能会发生冲突。我需要保证 - 与里面的现有子目录没有冲突$mydir

我需要以类似的方式解决问题tempname。类似地,但对于目录。

根据@RiggsFolly,我找到了这个解决方案

$file_path = tempnam( $books_dir, '' );
unlink($file_path);
mkdir($file_path);

但理论上可能存在冲突,然后 mkdir 可能会返回false,如果我以并行模式多次启动此脚本。

很好的解决方案,但并不理想。

标签: phplinuxfiledirectory

解决方案


推荐阅读