exec()不会更改当前文件夹之外的文件的属性

时间:2012-10-18 06:05:07

标签: php windows cmd

exec()函数用于更改Windows机器中的文件属性,只要给定的路径位于开发文件夹中即可。像

d:\程序\发展\ WWW \

只要文件在该路径中,它的属性就可以改变。

$path = D:\Programs\Development\www\test.jpg
exec("attrib +s +h $path");

这样可行,但是一旦我将路径更改为其他地方,此功能似乎无法正常工作

$path = 'D:\Desktop\New Folder (2)\Test Folders\test.jpg'
exec("attrib +s +h $path");

现在相同的命令不起作用。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您需要将路径放在引号中。

与大多数操作系统一样,文件名中的空格是您必须要处理的问题。这通常使用反斜杠来完成,但是,由于Windows对其文件夹系统使用反斜杠,因此您需要使用引号。

$path = 'D:\Desktop\New Folder (2)\Test Folders\test.jpg'
exec("attrib +s +h \"{$path}\"");

这应该适合你。