一、刪除目錄及目錄下的所有文件
function delDirAndFile( $dirName )
{
if ( $handle = opendir( "$dirName" ) ) {
while ( false !== ( $item = readdir( $handle ) ) ) {
if ( $item != "." && $item != ".." ) {
if ( is_dir( "$dirName/$item" ) ) {
delDirAndFile( "$dirName/$item" );
} else {
if( unlink( "$dirName/$item" ) )echo "成功刪除文件: $dirName/$item
\n”;
}
}
}
closedir( $handle );
if( rmdir( $dirName ) )echo “成功刪除目錄: $dirName
\n”;
}
}
二、僅刪除目錄下的文件,不刪除目錄
function delFile($dirName){
if(file_exists($dirName) && $handle=opendir($dirName)){
while(false!==($item = readdir($handle))){
if($item!= "." && $item != ".."){
if(file_exists($dirName.'/'.$item) && is_dir($dirName.'/'.$item)){
delFile($dirName.'/'.$item);
}else{
if(unlink($dirName.'/'.$item)){
return true;
}
}
}
}
closedir( $handle);
}
}
三、定時刪除
<?php
$flag = 1; //將執行標志設置為1,默認為執行
ignore_user_abort(); //客戶端斷開時,可以讓腳本繼續在后臺執行
set_time_limit(0); //忽略php.ini設置的腳本運行時間限制
$interval = 5*60; //設置執行周期,單位為秒,5分鐘為 5*60=300
do{
$flagfile = "flag.txt"; //標志放置在文件“flag.txt”中。“0”表示停止執行,“1”表示繼續執行
if(file_exists($flagfile) && is_readable($flagfile)) { //讀取文件內容
$fh = fopen($flagfile,"r");
while (!feof($fh)) {
$flag = fgets($fh); //存儲標志
}
fclose($fh);
}
$dir = "temp/"; //你的臨時目錄位置
$handle=opendir("{$dir}/");
while (false !== ($file=readdir($handle))) {
if ($file!="." && $file!=".." && !is_dir("{$dir}/{$file}")) {
@unlink ("{$dir}/{$file}");
}
}
closedir($handle); //關閉由 opendir() 函數打開的目錄
sleep($interval); //執行一個周期后,休眠$interval時間,休眠結束后腳本繼續執行
}while($flag);
友情提示:請在本地環境測試!
四、創建文件夾
mkdir("文件夾路徑",0700);
五、列出目錄和文件
if ($handle = opendir('./')) {//指定當前目錄
? while (false !== ($file = readdir($handle))) {//循環讀取目錄下的文件
? ? ? echo "$file<br />";
? }
? closedir($handle);//關閉目錄流
}
六、磁盤空間
function dir_size($dir) {
@$dh = opendir($dir);//打開目錄,返回一個目錄流
$size = 0;//初始大小為0
while ($file = @readdir($dh)) {//循環讀取目錄下的文件
if ($file != "." and $file != "..") {//如果返回的不是本目錄(.)或者上級目錄(..)
$path = $dir."/".$file;//設置目錄,用于含有子目錄的情況
if (is_dir($path)) {//如果是目錄文件
echo "$path<br />";
$size += dir_size($path);//遞歸調用,計算目錄大小
} elseif (is_file($path)) {//如果是文件
echo "$path ". filesize($path) ." BYTE<br />";
$size += filesize($path);//計算文件大小
}
}
}
@closedir($dh);//關閉目錄流
return $size;//返回大小
}
$dir = ".";//指定文件所在的目錄
$dir_size = dir_size("$dir");//計算目錄大小
echo "總大小:". $dir_size ." BYTE";
七、改變目錄和文件的屬性
chmod("test.txt",0755);