<?php $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $fileInfo) { if ($fileInfo->isdir()) { //echo $fileInfo->getPathname(); echo $fileInfo->getFilename(). "\t" . $fileInfo->getSize()."</br>"; } } ?>
文件信息函數
| 函數名 | 函數提供什么文件信息? |
|---|---|
| file_exists() | 該文件是否存在 |
| fileatime() | 最后訪問時間 |
| filectime() | 文件inode的最后修改時間 |
| filegroup() | 取得文件組(返回整數) |
| fileinode() | 取得文件的信息節點數(返回整數) |
| filemtime() | 取得文件數據塊最后被寫入的時間(返回Unix時間戳) |
| fileowner() | 取得文件的所有者(返回用戶ID) |
| fileperms() | 取得文件的權限 |
| filesize() | 取得文件大小的字節數 |
| filetype() | 取得文件類型,可能返回 fifo,char,dir,block,link,file 和 unknown |
| is_dir() | 判斷給定文件名是否是一個目錄 |
| is_executable() | 判斷給定文件名是否可執行(自PHP5.0.0起可用於Windows) |
| is_file() | 判斷給定文件名是否為一個正常的文件 |
| is_link() | 判斷給定文件名是否為一個符號連接 |
| is_readable() | 判斷給定文件名是否可讀 |
| is_writable() | 判斷給定文件名是否可寫 |
目錄相關函數
| 函數名 | 函數提供什么文件信息? |
|---|---|
| mkdir() | 創建一個新目錄,第二個參數可用來設置訪問權限 |
| rmdir() | 刪除目錄 |
| rename() | 重命名一個文件或目錄 |
目錄類相關方法
DirectoryIterator類封裝了很多與目錄相關的方法
| 方法名 | 函數提供什么目錄信息? |
|---|---|
| isDir() | 判斷給定的DirectoryIterator item對象是否是一個目錄 |
| isDot() | 判斷當前的DirectoryIterator item對象是否是‘.’或‘..’ |
| isFile() | 判斷當前的DirectoryIterator item對象是否是一個有效的文件 |
| isLink() | 判斷當前的DirectoryIterator item對象是否是一個連接 |
| isReadable() | 判斷當前的DirectoryIterator item對象是否可讀 |
| isWritable() | 判斷當前的DirectoryIterator item對象是否可寫 |
| isExecutable() | 判斷當前的DirectoryIterator item對象是否可執行 |
| getATime() | 獲取當前Iterator item最后訪問時間 |
| getCTime() | 獲取當前Iterator item最后修改時間 |
| getMTime() | 獲取當前Iterator item文件數據塊最后被寫入的時間 |
| getFilename() | 獲取當前Iterator item文件名(帶擴展名) |
| getPathname() | 獲取當前Iterator item路徑名 |
| getPath() | 獲取當前Iterator item路徑名和文件名 |
| getGroup() | 獲取當前Iterator item組ID |
| getOwner() | 獲取當前Iterator item擁有者ID |
| getPerms() | 獲取當前Iterator item權限 |
| getSize() | 獲取當前Iterator item文件大小 |
| getType() | 獲取當前Iterator item類型,可能是file,link or dir |
| getInode() | 獲取當前Iterator item的inode節點號 |
文件時間戳解惑
touch()函數修改文件的更新時間
fileatime()函數返回文件因為讀或寫被打開的最后時間
filemtime()函數返回文件內容被修改的最后時間
filectime()函數返回文件內容或元數據被修改的最后時間
獲取文件信息
通過stat()可以獲取一個包含文件相關信息的數組,與此函數類似的是fstat()函數,這個函數以一個文件句柄作為參數(由fopen()或popen()返回),lstat()用來獲取符號或文件連接的信息。
| 數字索引 | 字符串索引 | 說明 |
|---|---|---|
| 0 | dev | 設備號 |
| 1 | ino | 信息節點號 |
| 2 | mode | 保護模式 |
| 3 | nlink | 被連接數目 |
| 4 | uid | 所有者用戶ID |
| 5 | gid | 所在組ID |
| 6 | rdev | 設備類型,如果是inode設備的話 |
| 7 | size | 文件大小的字節數 |
| 8 | atime | 上次訪問的時間(Unix時間戳) |
| 9 | mtime | 上次修改的時間(Unix時間戳) |
| 10 | ctime | 上次改變的時間(Unix時間戳) |
| 11 | blksize | 文件系統IO的塊大小 |
| 12 | blocks | 所占據塊的數目 |
修改文件權限
chmod()函數修改文件的權限
chown()函數修改文件的所有者
chgrp()函數修改文件所屬組
注意:上述3個函數在Windows系統中無效
獲取文件名各部分信息
basename()函數可以取得文件名,dirname()函數可以取得路徑名,pathinfo()取得目錄名、完整文件名、擴展名、文件名(即不帶擴展名)的關聯數組,鍵名分別是[dirname]、[basename]、[extension]、[filename]
常通過dirname(__FILE__)的組合來獲取當前目錄路徑(物理路徑,常用在引用其他PHP文件上)
刪除文件
用unlink()函數可以刪除一個文件,如果刪除失敗將產生一個E_WARNING錯誤
提示:PHP5.0.0后此函數也可以用來刪除遠程文件,如FTP等
復制或移動文件
使用copy(old_dir,new_dir)函數可以復制文件,使用rename(old_dir,new_dir)移動文件,這里的new_dir是可以可以重命名文件名的。
