1. Basic file operations
The basic operations of files include: file judgment, directory judgment, file size, read-write judgment, existence judgment, file time, etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
header("content-type","text/html;charset=utf-8"); /* *Declare a function, pass in the file name to get the file attributes *@param string $fileName file name */ function getFilePro($fileName) { if(!file_exists($fileName)) { echo 'File does not exist return; } /*Is it an ordinary file*/ if(is_file($fileName)) { echo $fileName.' is a file } /*Is it a directory*/ if(is_dir($fileName)) { echo $fileName.'is a directory'; } /*Output file type*/ echo 'The file type is: '.getFileType($fileName).' /*File size, conversion unit*/ echo 'The file size is:'.getFileSize(filesize($fileName)).' /*Whether the file is readable*/ if(is_readable($fileName)) { echo 'The file is readable } /*Whether the file is writable*/ if(is_writable($fileName)) { echo 'The file is writable } /*Whether the file is executable*/ if(is_executable($fileName)) { echo 'The file is executable }
echo 'File creation time:'.date('Y year m month j day',filectime($fileName)).' echo 'The last modification time of the file:'.date('Y year m month j day',filemtime($fileName)).' echo 'The last time the file was opened:'.date('Y year m month j day',fileatime($fileName)).' }
/* *Declare a function that returns the file type *@param string $fileName file name */ function getFileType($fileName) { $type = ''; switch(filetype($fileName)) { case 'file':$type .= 'normal file';break; case 'dir':$type .= 'directory file';break; case 'block':$type .= 'block device file';break; case 'char':$type .= 'Character device file';break; case 'filo':$type .= 'pipe file';break; case 'link':$type .= 'symbolic link';break; case 'unknown':$type .= 'Unknown file';break; default: } return $type; }
/* *Declare a function to return the file size *@param int $bytes Number of bytes in the file */ function getFileSize($bytes) { if($bytes >= pow(2,40)) { $return = round($bytes / pow(1024,4),2); $suffix = 'TB'; } else if($bytes >= pow(2,30)) { $return = round($bytes / pow(1024,3),2); $suffix = 'GB'; } else if($bytes >= pow(2,20)) { $return = round($bytes / pow(1024,2),2); $suffix = 'MB'; } else if($bytes >= pow(2,10)) { $return = round($bytes / pow(1024,1),2); $suffix = 'KB'; } else { $return = $bytes; $suffix = 'B'; } return $return." ".$suffix; }
/*Call the function and pass in the test.txt file in the test directory*/ getFilePro('./test/div.html'); ?> |
Result:
2. Directory operations
Directory operations include: directory traversal, deletion, copy, size statistics, etc.
1. Traverse the directory
|
/*
*Traverse directories
*@param string $dirName directory name
*/
function findDir($dirName)
{
$num = 0; /*Count the number of sub-files*/
$dir_handle = opendir($dirName); /*Open directory*/
/*Output directory file*/
echo '
|
Results
2. Statistical directory size
|
/* *Statistics directory size *@param string $dirName directory name *@return double */ function dirSize($dirName) { $dir_size = 0; if($dir_handle = @opendir($dirName)) { while ($fileName = readdir($dir_handle)) { /*Exclude two special directories*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if(is_file($subFile)) { $dir_size += filesize($subFile); } if(is_dir($subFile)) { $dir_size += dirSize($subFile); } } } closedir($dir_handle); return $dir_size; } } /*Pass the test directory under the current directory*/ $dir_size = dirSize('./test'); echo './test directory file size is: '.round($dir_size / pow(1024,1),2).'KB'; |
Result:
3. Delete directory
|
/* *Delete directory *@param string $dirName directory name */ function delDir($dirName) { /*The mkdir function in php can create a directory*/ if(file_exists($dirName)) { if($dir_handle = @opendir($dirName)) { while ($fileName = readdir($dir_handle)) { /*Exclude two special directories*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if(is_file($subFile)) { unlink($subFile); } if(is_dir($subFile)) { delDir($subFile); } } } closedir($dir_handle); rmdir($dirName); return $dirName.'The directory has been deleted'; } } } /*Pass a copy of the test directory test1*/ echo delDir('./test1'); |
Prompt message for successful deletion
4. Copy directory
4 11 12 |
/* *Copy directory *@param string $dirSrc original directory name *@param string $dirTo target directory name */ function copyDir($dirSrc,$dirTo) { if(is_file($dirTo)) { echo 'The target directory cannot be created';/*The target is not one*/ return; } if(!file_exists($dirTo)) { /*Create the directory if it does not exist*/ mkdir($dirTo); } if($dir_handle = @opendir($dirSrc)) { while ($fileName = readdir($dir_handle)) { /*Exclude two special directories*/ if($fileName != '.' && $fileName != '..') { $subSrcFile = $dirSrc.'/'.$fileName; $subToFile = $dirTo.'/'.$fileName; if(is_file($subSrcFile)) { copy($subSrcFile,$subToFile); } if(is_dir($subSrcFile)) { copyDir($subSrcFile,$subToFile); } } } closedir($dir_handle); return $dirSrc.' directory has been copied to '.$dirTo.' directory'; } } echo copyDir('./test','../testcopy'); |