我试过这个:
echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';
echo chmod($mdbFilename, 0777);
echo substr(sprintf('%o', fileperms($mdbFilename)), -4).'<br />';
我得到的输出是:
0666
1
0666
所以上面没有用!为什么会这样?为什么chmod报告是真的?
变量$mdbFilename
包含文件的路径C:\wamp\www\webs\db\access_db_1276264459.mdb
任何帮助将不胜感激。
答案 0 :(得分:3)
Windows不支持* NIX octal permissions。
编辑: 在重新阅读文件的权限之前,您可能还想尝试clearing the stat cache,ala Pekka的回复。
编辑#2:由于0777
的权限指定文件是可执行的,您为什么还要对文件执行此操作?
它是MDB文件或Microsoft Access ™数据库文件。为什么需要执行?我认为Windows通过具有可执行扩展名(例如.EXE
,.BAT
或.COM
)来确定某些内容是否可执行。
答案 1 :(得分:2)
更新:我忽略了OP在Windows上,那里没有chmod。我将离开答案,因为如果这是在Linux上,我认为它适用。
旧答案:尝试在每一行之间添加clearstatcache()
来电。