<?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是可以可以重命名文件名的。