php标准库DirectoryIterator类的操作说明
<?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()函数修改文件所属组
获取文件名各部分信息
basename()函数可以取得文件名,dirname()函数可以取得路径名,pathinfo()取得目录名、完整文件名、扩展名、文件名(即不带扩展名)的关联数组,键名分别是[dirname]、[basename]、[extension]、[filename]
常通过dirname(__FILE__)的组合来获取当前目录路径(物理路径,常用在引用其他PHP文件上)
删除文件
用unlink()函数可以删除一个文件,如果删除失败将产生一个E_WARNING错误
复制或移动文件
使用copy(old_dir,new_dir)函数可以复制文件,使用rename(old_dir,new_dir)移动文件,这里的new_dir是可以可以重命名文件名的。
php标准库DirectoryIterator类的操作说明的更多相关文章
- C++标准库异常类
C++标准库异常类 2012-12-24 16:27 5269人阅读 评论(1) 收藏 举报 分类: c/c++(36) C++标准库异常类继承层次中的根类为exception,其定义在excep ...
- C++异常第二篇---C++标准库异常类exception的使用
1 继承图示 2 具体讲解 C++标准库异常类继承层次中的根类为exception,其定义在exception头文件中,它是C++标准库所有函数抛出异常的基类,exception的接口定义如下: na ...
- 实现C++标准库string类的简单版本
代码如下: #ifndef STRING_H #define STRING_H #include <cassert> #include <utility> #include & ...
- C++ 标准库字符串类使用
标准库中的字符串类 C++语言直接支持C语言所有概念. C++中没有原生的字符串类型. 由于C++中没有原生的字符串类型,C++标准库提供了string类型. 1.string 直接支持字符串链接 2 ...
- 标准库String类
下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...
- 把《c++ primer》读薄(3-3 标准库bitset类型)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型( ...
- 16.C++-初探标准库
在别人代码里,经常看到std命名空间,比如使用std命名空间里的标准输入输出流对象cout: #include<iostream> using namespace std; int mai ...
- C++ 异常机制分析(C++标准库定义了12种异常,很多大公司的C++编码规范也是明确禁止使用异常的,如google、Qt)
阅读目录 C++异常机制概述 throw 关键字 异常对象 catch 关键字 栈展开.RAII 异常机制与构造函数 异常机制与析构函数 noexcept修饰符与noexcept操作符 异常处理的性能 ...
- 【Python】类和对象、继承、使用文件、存储、异常、标准库(不懂)
当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self ...
随机推荐
- 某考试T2 frog
题目背景 无 题目描述 数轴上有 n 只青蛙,分别编号为 1 到 n.青蛙 i 的初始位置的坐标为 xi. 它们准备进行如下形式的移动:每轮包括 m 次跳跃,第 i 次跳跃由青蛙 ai(1 < ...
- FactoryMethod
工厂方法模式 定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类 工厂方法的简单实现 (1)创建简单的产品接口 /** * 创建产品接口 * @autho ...
- Maven项目导入到Eclipse时Build出现the user operation is waiting for building workspace to complete的问题解决
解决办法如下: 1.选择菜单栏的[Project],然后把菜单栏中[Build Automatically]前面的对钩去掉.
- Linux使用cd回到上一目录
//返回上一级目录 cd .. //返回用户主目录 cd 或 cd ~ //返回根目录 cd /
- 数据库资源博客---小麦苗BEST
http://blog.csdn.net/lihuarongaini/article/details/60584577 http://blog.csdn.net/lihuarongaini/artic ...
- 一个完整的Core Data应用
在这篇文章中,我们将建立一个小型但却全面支持Core Data的应用.应用允许你创建嵌套的列表:每个列表的item都可以有子列表,这将允许你创建非常深层次的item.为了让大家完整的了解发生了什么,我 ...
- 如何选择Haproxy和Nginx
对于做软负载,我们都知道主流的方案有LVS.Haproxy.Nginx!那么对于Haproxy和Nginx,我们如何选择呢?回答这个问题之前,我根据个人使用经验来讲下它们的特点! Haproxy特点 ...
- linux 文件查找实用技巧
1.tail catalina.out -n 100000 | grep -niR com.uujimu.utils.ArticleContentReplace.replacNumToA 查找内容,并 ...
- TP多条件查询
$stcount = M("Results_all")->alias('a') ->join("s_test_name as b on a.subject = ...
- C#高级编程---暂停计划
学了两个半月的C#高级编程这本书,看到了第三部分,说实话,我有点怂了,我认怂,临时先放一下,博客暂停,由于我的水平确实不会了,在写下去也是自欺欺人,我决定先研究研究我比較喜欢的脚本语言JS,開始写的, ...