回答
這是爲這種情況的算法。
- 檢查文件夾是否存在。
- 如果文件夾存在,則將該文件夾命名爲其他名稱或向其添加一個隨機數。
創建新文件夾。
試試這個。
mkdir ("./files/$username");
不是那些相同的文件夾?文件/ Alex和文件/ Alex /是相同的。你的意思是文件/ $用戶名和文件/ $用戶名/文件?你正在做同樣的目錄兩次,所以這是錯誤
這些是我已經嘗試過的兩種不同的東西 – Primm 2012-07-25 20:00:48
轉到命令行並執行mkdir文件/測試然後在不更改目錄的情況下執行mkdir文件/ test /您將得到相同的錯誤 – 2012-07-25 20:02:32
如果你在Linux或MacOs上,還有另一種情況,將調用你的shell的mkdir函數。
它會看起來像:
system('mkdir -p yourdir/files/$username')
首先,什麼是$username
的實際價值?你是否證實它不是空的?
像這樣處理文件系統會導致幾個不同的問題。我喜歡進行很多額外的檢查,所以如果出現問題,我會更容易知道原因。我也喜歡在可能的情況下處理絕對目錄名稱,所以我不會遇到相對路徑問題。
$filesDir = '/path/to/files';
if (!file_exists($filesDir) || !is_dir($filesDir)) {
throw new Exception("Files directory $filesDir does not exist or is not a directory");
} else if (!is_writable($filesDir)) {
throw new Exception("Files directory $filesDir is not writable");
}
if (empty($username)) {
throw new Exception("Username is empty!");
}
$userDir = $filesDir . '/' . $username;
if (file_exists($userDir)) {
// $userDir should be all ready to go; nothing to do.
// You could put in checks here to make sure it's
// really a directory and it's writable, though.
} else if (!mkdir($userDir)) {
throw new Exception("Creating user dir $userDir failed for unknown reasons.");
}
mkdir()
有一些非常有用的選項,用於設置權限並使文件夾層次更深。如果你還沒有,請查看PHP's mkdir page。
爲了安全起見,請確保您的例外情況不會向最終用戶透露系統路徑。當您的代碼進入公共服務器時,您可能希望從錯誤消息中刪除文件夾路徑。或者配置一些東西,以便您的例外被記錄但不會顯示在網頁上。
- 1. 製作文件夾和複製文件
- 2. 忽略svn控制文件夾中的文件和文件夾?
- 3. powershell複製文件夾中的所有文件夾和文件
- 4. 從URL製作文件夾名稱php
- 5. 使該文件夾中的文件夾和子文件夾
- 6. 製作〜/引用根文件夾(與web.config相同的文件夾)
- 7. htaccess中的「文件夾的文件夾」
- 8. 控制器子文件夾中的子文件夾和路線
- 9. .bat文件複製文件夾到文件夾留出某些文件夾
- 10. Filsystem - 在文件夾下的文件夾,文件夾...
- 11. 使用powershell移動/製作基於文件名的文件夾/子文件夾
- 12. htaccess刪除文件夾的文件夾
- 13. PHP根文件夾
- 14. 將一個文件複製到文件夾中的所有文件夾?
- 15. 包含從根文件夾中的子文件夾中的PHP文件
- 16. 如何將文件夾和子文件夾中的文件複製到R中的另一個文件夾?
- 17. 如何製作從源文件夾中繪製的jar文件
- 18. res文件夾中的可繪製文件夾?
- 19. 複製R中子文件夾的文件夾
- 20. 限制文件夾
- 21. 將文件從源文件夾複製到目標文件夾
- 22. Powershell複製文件夾和文件,並重新創建父文件夾作爲子文件夾
- 23. 將文件夾從一個文件夾複製到一個新文件夾
- 24. PHP - 閱讀文件夾,所有子文件夾和子文件夾中的文件
- 25. 從文件夾和子文件夾中刪除文件
- 26. 將源文件夾中的文件複製到不同的目標文件夾
- 27. PHP無法將文件複製到Windows中的Dropbox文件夾
- 28. 如何將舊文件夾複製到新文件夾並重命名新文件夾中的文件
- 29. 在輸出文件夾中製作Eclipse複製源文件
- 30. 計算文件夾內的文件夾
也許文件夾已經存在,你想先檢查一下嗎? – Ibu 2012-07-25 19:47:17
它不!我試着用差異用戶名,每次它不存在 – Primm 2012-07-25 19:47:34
看起來你應該添加一個檢查周圍的mkdir如果目錄存在,或者可能抑制錯誤/警告 – ernie 2012-07-25 19:47:37