2013-10-02 77 views
0

我在創建文件夾並寫入文件夾時遇到問題。爲什麼PHP認爲這個文件夾不存在?

if(file_exists("helloFolder") || is_dir("helloFolder")){ 
    echo "folder already exists"; 
} else { 
    echo "no folder, creating"; 
    mkdir("helloFolder", 0755); 
} 

即使文件夾已經存在,也會返回"no folder, creating"。然後,我得到這個錯誤:

Warning: mkdir() [function.mkdir]: No such file or directory in script.php on line 18 

警告:file_put_contents(/filename.txt)function.file-把-內容]:未能打開流:權限的script.php否認線58

非常奇怪的是,我調用了三個獨立的腳本來完成這個任務,雖然這個腳本總是有效,但其他兩個腳本總是會出現這個錯誤。我正在同步調用腳本,所以我不認爲有任何重疊。他們之間的其他一切都是一樣的。全部有權限644,所有文件夾都有權限755

+1

web根目錄!==文件系統根目錄 –

回答

4

首先,你應該與文件系統工作時,堅持絕對的補丁,也有兩個小瑕疵:

  • is_dir() - 檢查文件是否存在及其目錄。因此file_exists()有點多餘。

  • 如果您在其他地方使用相同的字符串,最好將其值保存在變量中。

最後,你的代碼應該是這樣的,

$target = dirname(__FILE__) . '/hellodir'; 

if (is_dir($target)) { 

    echo "folder already exists"; 

} else { 

    echo "no folder, creating"; 
    // The 3-rd bool param includes recursion 
    mkdir($target, 0777, true); 
} 

這將正常工作。

2

嘗試創建文件夾此代碼,如果文件夾不存在有:

<?php 

if (file_exists('path/to/directory')) { 
    echo "Folder Already Exists"; 
} 
else{ 
    mkdir('path/to/directory', 0777, true); 
    echo "folder Created"; 
} 
?> 
相關問題