创建多级目录函数中调用创建指定下的指定文件的函数:

 public function create_dir($dir,$mode=0777){return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode));}

创建指定路径下的指定文件,string $path(需要包含文件名和后缀),boolean $over_write 是否覆盖文件,int $time 设置时间。默认是当前系统时间,int $atime 设置访问时间。默认是当前系统时间。函数如下中调用了create_dir创建目录函数及删除unlink_file函数:

 public function create_file($path,$over_write=FALSE,$time=NULL,$atime=NULL){$path = $this->dir_replace($path);$time = empty($time) ? time() : $time;$atime = empty($atime) ? time() : $atime;if(file_exists($path) && $over_write){$this->unlink_file($path);}$aimDir = dirname($path);$this->create_dir($aimDir);return touch($path,$time,$atime);}

删除非空目录函数,说明:只能删除非系统和特定权限的文件,否则会出现错误,string$dirName目录路径,boolean$is_all是否删除所有,boolean $del_dir 是否删除目录,函数如下:

public function remove_dir($dir_path,$is_all=FALSE){$dirName = $this->dir_replace($dir_path);$handle = @opendir($dirName);while (($file = @readdir($handle)) !== FALSE){if($file != '.' && $file != '..'){$dir = $dirName . '/' . $file;if($is_all){is_dir($dir) ? $this->remove_dir($dir) : $this->unlink_file($dir);}else {if(is_file($dir)){$this->unlink_file($dir);}}}}closedir($handle);return @rmdir($dirName);}

替换路径中//的字符相应的字符函数:

 public function dir_replace($path){return str_replace('//','/',str_replace('\\','/',$path));}

 /*** 指定文件编码转换* @param string $path 文件路径* @param string $input_code 原始编码* @param string $out_code 输出编码* @return boolean*/public function change_file_code($path,$input_code,$out_code){if(is_file($path))//检查文件是否存在,如果存在就执行转码,返回真
        {$content = file_get_contents($path);$content = string::chang_code($content,$input_code,$out_code);$fp = fopen($path,'w');return fputs($fp,$content) ? TRUE : FALSE;fclose($fp);}}

/**
* 取得上传文件信息
* @param $file file属性信息
* @return array
*/

 public function get_upload_file_info($file){$file_info = $_FILES[$file];//取得上传文件基本信息$info = array();$info['type']  = strtolower(trim(stripslashes(preg_replace("/^(.+?);.*$/", "\\1", $file_info['type'])), '"'));//取得文件类型$info['temp']  = $file_info['tmp_name'];//取得上传文件在服务器中临时保存目录$info['size']  = $file_info['size'];//取得上传文件大小$info['error'] = $file_info['error'];//取得文件上传错误$info['name']  = $file_info['name'];//取得上传文件名$info['ext']   = $this->get_ext($file_info['name']);//取得上传文件后缀return $info;}

/**
* 取得文件路径信息
* @param $full_path 完整路径
* @return ArrayObject
*/

 public function get_file_type($path){//pathinfo() 函数以数组的形式返回文件路径的信息。//---------$file_info = pathinfo($path); echo file_info['extension'];----------////extension取得文件后缀名【pathinfo($path,PATHINFO_EXTENSION)】-----dirname取得文件路径【pathinfo($path,PATHINFO_DIRNAME)】-----basename取得文件完整文件名【pathinfo($path,PATHINFO_BASENAME)】-----filename取得文件名【pathinfo($path,PATHINFO_FILENAME)】return pathinfo($path);}

/**
* 返回指定文件和目录的信息
* @param string $file
* @return ArrayObject
*/

public function list_info($file){$dir = array();$dir['filename']   = basename($file);//返回路径中的文件名部分。$dir['pathname']   = realpath($file);//返回绝对路径名。$dir['owner']      = fileowner($file);//文件的 user ID (所有者)。$dir['perms']      = fileperms($file);//返回文件的 inode 编号。$dir['inode']      = fileinode($file);//返回文件的 inode 编号。$dir['group']      = filegroup($file);//返回文件的组 ID。$dir['path']       = dirname($file);//返回路径中的目录名称部分。$dir['atime']      = fileatime($file);//返回文件的上次访问时间。$dir['ctime']      = filectime($file);//返回文件的上次改变时间。$dir['perms']      = fileperms($file);//返回文件的权限。 $dir['size']       = filesize($file);//返回文件大小。$dir['type']       = filetype($file);//返回文件类型。$dir['ext']        = is_file($file) ? pathinfo($file,PATHINFO_EXTENSION) : '';//返回文件后缀名$dir['mtime']      = filemtime($file);//返回文件的上次修改时间。$dir['isDir']      = is_dir($file);//判断指定的文件名是否是一个目录。$dir['isFile']     = is_file($file);//判断指定文件是否为常规的文件。$dir['isLink']     = is_link($file);//判断指定的文件是否是连接。$dir['isReadable'] = is_readable($file);//判断文件是否可读。$dir['isWritable'] = is_writable($file);//判断文件是否可写。$dir['isUpload']   = is_uploaded_file($file);//判断文件是否是通过 HTTP POST 上传的。return $dir;}

完整封装代码内容有限,请到下面下载地址去下载:http://pan.baidu.com/s/1gf4AGoF

密码:iqun

转载于:https://www.cnblogs.com/sztx/p/9499770.html

php创建多级目录完整封装类操作相关推荐

  1. (47)fs创建多级目录

    一.fs创建多级目录说明 fs.mkdir('./a/b/c') 这样写可以不可以呢? 答案:不可以. 多级目录的创建方式:一般使用递归的方式进行创建. 如何操作? 先创建./a 再创建./a/b 最 ...

  2. os模块创建多级目录

    背景 python的os模块是可以动态创建目录的,但是很多人只了解单级目录的创建方法,其实os模块封装了完整的目录创建相关的方法. 创建单级目录 os.mkdir('./path') 创建多级目录 o ...

  3. php 从根目录 开始创建,php创建多级目录的方法

    php创建多级目录的方法 本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: /* 写出一个能创建多级目录的PHP函数 */ function createdirlist ...

  4. php使用mkdir创建多级目录入门例子

    来源:http://www.jb51.net/article/49970.htm <?php   //echo "hello world";   //echo "y ...

  5. Linux mkdir 命令创建多级目录

    前言 CentOS Linux release 8.2.2004 (Core) 创建多级目录 比如创建目录 /data/a/b/c shell> mkdir /data shell> mk ...

  6. PHP递归创建多级目录(一道面试题的解题过程)

    今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...

  7. 【转】php利用mkdir创建多级目录

    先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访 ...

  8. php利用mkdir()创建多级目录

    先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访 ...

  9. qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹

    1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 /*方法1*/ bool isDirExist(QString fullPath) { QDir dir(f ...

最新文章

  1. python判断远程文件是否存在
  2. 解释与构造---无理数能级
  3. [Python人工智能] 十.Tensorflow+Opencv实现CNN自定义图像分类案例及与机器学习KNN图像分类算法对比
  4. 20165320 第九周学习总结
  5. bootstrap 合并菜单_Bootstrap与tab组合,切换菜单实例
  6. pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解
  7. 【Spring】jpa数据库表实体命名规则 Unknown column ‘user0_.create_time‘ in ‘field list‘
  8. 大开眼界:Facebook做了一个会“开眼”的AI,拯救眨眼照片
  9. CSRF手工测试方法
  10. c语言函数可变长参数,一种使用变长参数为C程序构造灵活回调函数的方法
  11. 第一阶段个人总结04
  12. 代码生成工具系列-----代码生成工具(CodeEasy)介绍
  13. 设为首页 加入收藏 html,如何在网站上添加“设为首页”“加入收藏”
  14. SpringBoot框架下集成萤石云平台开发海康的摄像头
  15. 孕妇能吃哪些水果?三种水果帮你补充高营养
  16. 数析三剑客 numpy pandas matplotlib 基础操作
  17. 为什么L0正则化是一个NP难解问题?
  18. HTTP和RTSP简介
  19. numeric_limits的运用
  20. 分享我的2010年博客阅读列表

热门文章

  1. vue element ui 滚动条
  2. 实时目标检测--Pelee: A Real-Time Object Detection System on Mobile Devices
  3. 目标检测--Light-Head R-CNN: In Defense of Two-Stage Object Detector
  4. LeetCode 111. Minimum Depth of Binary Tree--Java, Python解法--二叉树最小高度--迭代,递归
  5. 字符串位加密 php,PHP字符串加密增强版
  6. unity不规则碰撞_Unity UGUI学习系列(二) ------ PolygonCollider2D实现不规则碰撞范围
  7. p40鸿蒙系统体验,苦心等待值了!华为P40成功运行鸿蒙OS,超级流畅
  8. java怎么将字符串反序输出_对String字符串进行反序输出
  9. spring中这些能升华代码的技巧,可能会让你爱不释手
  10. python在线编辑器最新_skulpt搭建Python在线编译器(一):下载、安装