【问题标题】:PHP mkdir not working with folder that has 'System Action' or 'Device' reference namePHP mkdir 不适用于具有“系统操作”或“设备”参考名称的文件夹
【发布时间】:2017-12-22 04:07:13
【问题描述】:

我们有一个 Web 基础应用程序,它在 FTP 位置生成文件夹,文件夹名称基于 XML 中提供的数据。 文件夹名称有无限可能,最近我们遇到了需要 CON 作为文件夹名称的数据。

现在,既然 CON 是您不能使用的名称之一,而且公司正在使用 Windows 机器,那么无论如何要强制创建此文件夹吗?

当前代码使用mkdir 生成文件夹,但看起来它不会去任何地方。

不同用户会不时通过应用程序使用 FTP 连接桥访问此文件夹,因此在创建的文件夹内的文件操作方面,我们可以预期是否有任何负面/限制?

我认为的其他解决方案是: 过滤具有 CON 的项目并将其重命名为其他名称,但这是最后的手段,并且会在应用程序内进行大量修改。

【问题讨论】:

    标签: php windows ftp mkdir


    【解决方案1】:

    使用这个语法:

    mkdir("\\\\.\\C:\\path\\to\\con");
    

    基于Unable to rename a folder or a file as 'con'

    【讨论】:

    • 我通过 php 和 ftp 路径获取mkdir(): No such file or directory。我也在本地的命令行中尝试过,但我得到了The directory or file cannot be created.。也许它不再适用于 Windows 8 和 Windows 10 操作系统?
    • 在 Windows 10 上测试(仅)。工作正常。你尝试什么确切的命令?给我们看一看。什么版本的 PHP?
    • 版本 5.6.14,对不起,它在命令行上工作。但是通过 ftp 似乎我无法使其工作。 $folder = '//./'.FILE_SERVER_FTTP_CREDENTIAL.FILE_SERVER_PATH.$folder_name.'/'.$folder_name.'_'.$folder_id.'/'; 返回//./ftp://username:password@Constant/Path/CON/CON_1234,我将其用作mkdir($folder); 并给我错误:mkdir(): No such file or directory。我应该使用正斜杠,因为这是一个 URI,对吧?
    • 在通过 php.ini 处理此文件夹内的文件期间,我似乎会遇到 issue(bwDraco 在您的链接中的回答)。例如复制,删除,重命名。也许我应该放弃并用保留字重命名文件?
    • 好的,所以如果你的问题真的是关于 FTP 的,你应该在问题中显示你的代码以明确你在做什么。您还应该指定您使用的 FTP 服务器,因为问题及其解决方案可能非常特定于服务器。此外,您应该告诉我们您是否能够使用任何(甚至是 GUI)FTP 客户端创建这样的文件夹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2013-05-02
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多