php 建立資料夾
function mkdirs($dir)
{
if(!is_dir($dir))
{
if(!$this->mkdirs(dirname($dir))){
return false;
}
if(!mkdir($dir,0777)){
return false;
}
}
chmod($dir, 777); //給目錄操作許可權
return true;
}
開始時我認為,只要給一個路徑,mkdir就可以建立資料夾,但是事實並不是那樣,單個的mkdir只能建立一級目錄,對於多級的就不行了。
1. 使用PHP5新增方法
PHP5 下建立目錄函式 mkdir 增加了一個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對PHP4就不行了。
2.自己寫一個遞迴建立多級目錄。
這裡,我對第二種方式作一點說明,也有兩種方式,如下:
第一種(用mkdirs來產生多級父級)
function mkdirs($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
if (!mkdirs(dirname($dir), $mode)) return FALSE;
return @mkdir($dir, $mode);
}
說明:
1.首先 簡單說一下mkdir()與mkdirs()的區別,以及,is_dir和dirname():
mkdir() 只能在已經存在的目錄中建立建立資料夾(即父級必須有才行)。
mkdirs() 可以在不存在的目錄中建立資料夾。諸如:a\b,既可以建立多級目錄。
dirname()是返回路徑中的目錄部分。
is_dir()用於判斷給出的檔名是否是一個有效的目錄
2.大致流程為:
(1) 先用is_dir判斷是否已是一個資料夾,如果是則返回TRUE。如沒有(或者不是資料夾),則試著建立它,當然有可以父級不存在,那mkdir直接就創不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。
(2)如果傳引數都不滿足條件,那麼就進入第二個if語句,先是取得路徑中的目錄部分,當然有可能是不存在的多級父級,所以用了mkdirs()來先建立父級,如果成功(不成功返回FALSE),那麼再用mkdir來建立最終的目錄了。
好了,以上就是第一種方案。
第二種
(說明:此方案是相當的精簡,那是相當的不錯的方案,推薦使用它)
function create_folders($dir){
return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777));
}
說明:
大致流程: 得到路徑後,先判斷是否已是一個有效的檔案目錄,如是則返回,結束程式。如果不是,(由於這裡用了OR作先擇性的條件,即只要滿足其中一個條件就行),則遞迴再呼叫自身,並且傳入的路徑中,少一級目錄。這樣來先回到上級有的父級目錄中,再用mkdir來建立下一級的。
好了,以上就是用PHP來建立資料夾(以及多級資料夾)的方法。^_^
總結:
1.用PHP5中自帶的mkdir 中的一個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對PHP4就不行了。
2.自己寫的方法中,用mkdirs來建立多級父級目錄方式
3.仍然可以用mkdir很巧妙的來建立多級資料夾。
相關文章
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- mkdir() 建立資料夾
- java建立資料夾Java
- laravel 建立資料夾Laravel
- 關於require('mkdirp')建立資料夾UI
- 必須先建立資料夾再建立檔案嗎
- 利用java建立檔案或者資料夾Java
- NAS加密資料夾建立和使用教程加密
- php遍歷資料夾以及子目錄;PHP
- MFC下判斷資料夾是否存在,如不存在則建立資料夾
- DeerOJ的前端框架介紹-Web資料夾和App資料夾(route.php)前端框架WebAPPPHP
- NAS上如何建立和使用加密資料夾?加密
- git針對指定資料夾建立版本庫Git
- git 命令建立一個資料夾目錄Git
- php sqlite 建立本地資料庫PHPSQLite資料庫
- hadoop 資料夾檔案的建立與刪除Hadoop
- FileUtils類建立、刪除檔案及資料夾
- php 刪除資料夾的實現程式碼PHP
- 如何在鐵威馬NAS上建立共享資料夾
- dotnet 6 使用 CreateSymbolicLink 建立資料夾符號連結Symbol符號
- 自研 PHP 框架 1.1_system 資料夾說明PHP框架
- 自研 PHP 框架 1.1_App 資料夾說明PHP框架APP
- 自研 PHP 框架 1.1_controller 資料夾說明PHP框架Controller
- 自研 PHP 框架 1.0_App 資料夾說明PHP框架APP
- 自研 PHP 框架 1.0_system 資料夾說明PHP框架
- 踩坑PHP複製檔案到另外資料夾PHP
- 雲伺服器:Linux資料夾檔案建立、刪除伺服器Linux
- 使用node中fs模組建立和刪除資料夾
- SharpZipLib解壓資料夾 包含空資料夾
- Andorid Studio drawable資料夾建立專案只有一個問題
- linux|批量建立檔案、資料夾或刪除——萬用字元Linux字元
- MacOS 升級 Catalina 後根目錄無法建立資料夾Mac
- .git資料夾Git
- 資料夾操作
- Android中asset資料夾和raw資料夾區別Android
- docker基礎:mysql容器建立,時間同步,掛載到資料夾DockerMySql
- win 建立共享資料夾(共享需要密碼,共享後打不開)密碼
- Linux 無許可權建立資料夾( 報錯:Unable to create ... directory.)Linux
- windows資料夾大小Windows