我有一個PHP腳本,其中包括大致線:PHP的mkdir()失敗,但失敗命令rmdir因爲它沒有
$dirname = '/directory/subdirectory';
if (mkdir($dirname)) {
// do something...
} else {
// couldn't make the directory, error out
}
這是返回一個錯誤。 error_get_last()
回報:
Array
(
[type] => 2
[message] => mkdir(): File exists
[file] => /scripts/the_script.php
[line] => 155
)
但是,目錄不會出現在我的文件系統(無論是在GUI或命令行)存在,rmdir /directory/subdirectory
失敗,「沒有這樣的文件或目錄」。
幫助!
編輯:對於以下人員 - 爲了清楚起見,我在獨立解決之後刪除了先前對文件名衝突的編輯/更新。上述問題依然存在。
編輯II
權限:沒有權限的問題,我相當有信心。我可以使用完全相同的代碼在同一目錄中創建不同名稱的子目錄,而不會出現問題。當系統另有說明時,PHP認爲某個子目錄存在的情況似乎更多。
這是所有在virtualbox centos機器上運行的,共享目錄被掛載到我的主機上。該目錄不會出現在任何機器的shell實例或ssh中。
編輯III
要確認哪些人可能一直在想,它看起來像這個問題實際上是無關的PHP。在命令行中,我可以運行:
$ mkdir /path/to/directory
mkdir: cannot create directory '/path/to/directory': File exists
$ rmdir /path/to/directory
rmdir: failed to remove '/path/to/directory': No such file or directory
而只是最糟糕的是...
$ rm /path/to/directory
rm: cannot remove '/path/to/directory': Is a directory
因爲:'$'DIR是不是'$ dirname','$ dirname'甚至不作爲變量存在於你的代碼refrence –
@ArshSingh啊哈哈哈哈多數民衆贊成讓我精神大振。發現得好。 – Martin
@ArshSingh對不起,這只是我的問題,而不是我的實際代碼錯字!變量確實匹配。 –