代码之家  ›  专栏  ›  技术社区  ›  user2650277

mkdir在创建目录时发出错误警告

  •  2
  • user2650277  · 技术社区  · 10 年前

    我正在尝试创建临时目录,但遇到以下错误

    Warning: mkdir(): File exists

    然而,当我检查目录时,它实际上不存在。的典型值 $tmp /tmp/testKanfEt

    $tmp = tempnam(sys_get_temp_dir() , 'test');
    echo  $tmp;
    mkdir($tmp);
    

    我在这里错过了什么?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Xorifelse    10 年前

    功能 tempnam() 给定路径中的文件 如果创建成功,则返回完整路径。您正在尝试创建一个目录,其中包含 相同的 路径作为文件 .


    但在这种情况下, 临时() 在我看来被错误地使用了。 除o.s以外的任何其他目录中的文件。 临时管理计划 文件夹

    为什么?因为在 临时管理计划 目录您不应该关心文件名,因为一旦 fclose() 例如,脚本执行结束时)无法保证文件仍然存在。


    tmpfile() 因为它返回一个文件句柄,直接在 临时管理计划 目录

    如果您确实需要文件名,您仍然可以使用 临时() 或者像这样从手柄中取出:

    echo stream_get_meta_data(($fh=tempfile()))["uri"];
    
    推荐文章