class fileInit {

     /**
* 创建空文件
* @param string $filename 需要创建的文件
* @return
*/
public function create_file($filename) {
if (file_exists($filename)) return false;
$this->create_dir(dirname($filename)); //创建目录
return @file_put_contents($filename,'');
} /**
* 写文件
* @param string $filename 文件名称
* @param string $content 写入文件的内容
* @param string $type 类型,1=清空文件内容,写入新内容,2=再内容后街上新内容
* @return
*/
public function write_file($filename, $content, $type = 1) {
if ($type == 1) {
if (file_exists($filename)) $this->del_file($filename); //删除文件
$this->create_file($filename);
return $this->write_file($filename, $content, 2);
} else {
if (!is_writable($filename)) return false;
$handle = @fopen($filename, 'a');
if (!$handle) return false;
$result = @fwrite($handle, $content);
if (!$result) return false;
@fclose($handle);
return true;
}
} /**
* 拷贝一个新文件
* @param string $filename 文件名称
* @param string $newfilename 新文件名称
* @return
*/
public function copy_file($filename, $newfilename) {
if (!file_exists($filename) || !is_writable($filename)) return false;
$this->create_dir(dirname($newfilename)); //创建目录
return @copy($filename, $newfilename);
} /**
* 移动文件
* @param string $filename 文件名称
* @param string $newfilename 新文件名称
* @return
*/
public function move_file($filename, $newfilename) {
if (!file_exists($filename) || !is_writable($filename)) return false;
$this->create_dir(dirname($newfilename)); //创建目录
return @rename($filename, $newfilename);
} /**
* 删除文件
* @param string $filename 文件名称
* @return bool
*/
public function del_file($filename) {
if (!file_exists($filename) || !is_writable($filename)) return true;
return @unlink($filename);
} /**
* 获取文件信息
* @param string $filename 文件名称
* @return array('上次访问时间','inode 修改时间','取得文件修改时间','大小','类型')
*/
public function get_file_info($filename) {
if (!file_exists($filename)) return false;
return array(
'atime' => date("Y-m-d H:i:s", fileatime($filename)),
'ctime' => date("Y-m-d H:i:s", filectime($filename)),
'mtime' => date("Y-m-d H:i:s", filemtime($filename)),
'size' => filesize($filename),
'type' => filetype($filename)
);
} /**
* 创建目录
* @param string $path 目录
* @return
*/
public function create_dir($path) {
if (is_dir($path)) return false;
fileInit::create_dir(dirname($path));
@mkdir($path);
@chmod($path, 0777);
return true;
} /**
* 删除目录
* @param string $path 目录
* @return
*/
public function del_dir($path) {
$succeed = true;
if(file_exists($path)){
$objDir = opendir($path);
while(false !== ($fileName = readdir($objDir))){
if(($fileName != '.') && ($fileName != '..')){
chmod("$path/$fileName", 0777);
if(!is_dir("$path/$fileName")){
if(!@unlink("$path/$fileName")){
$succeed = false;
break;
}
}
else{
self::del_dir("$path/$fileName");
}
}
}
if(!readdir($objDir)){
@closedir($objDir);
if(!@rmdir($path)){
$succeed = false;
}
}
}
return $succeed;
}
}

php 文件操作类的更多相关文章

  1. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  2. 文件操作类CFile

    CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...

  3. asp.net文件操作类

    /** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...

  4. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  5. Ini文件操作类

    /// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...

  6. java csv 文件 操作类

    一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...

  7. Qt5:Qt文件操作类 QFile

    在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类 QString .在Qt中使用C+ ...

  8. C# 文件操作类大全

      C# 文件操作类大全 时间:2015-01-31 16:04:20      阅读:1724      评论:0      收藏:0      [点我收藏+] 标签: 1.创建文件夹 //usin ...

  9. Java文件操作类效率对比

    前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...

  10. JAVA文件操作类和文件夹的操作代码示例

    JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...

随机推荐

  1. javascript 高级程序设计学习笔记(面向对象的程序设计)继承

    ECMAScript中描述了原型链的概念,原型链是实现继承的主要方法. 实现原型链继承有一种基本模式 function SuperType () { this.property = true; } S ...

  2. Gallery过时替代方案HorizontalScrollView

    布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:androi ...

  3. python解析xml

    python解析xml import xml.dom.minidom as minidom dom = minidom.parse("aa.xml") root = dom.get ...

  4. 阿里云 配置apache+python+django 环境 适合菜鸟

    云服务器环境:阿里云服务:20G+1M带宽+centos+512M 一.python安装: 刚开始没有好好利用centos 的yum方法.采用wget从python官网上下载的2.7.5版本.解压安装 ...

  5. Excel导入到DataTable

    1.前台代码 <asp:FileUpload ID="fupFiles" runat="server" /> <asp:Button ID=& ...

  6. NFC介绍

    简介 本文介绍Nokia设备所支持的近场通信技术(NFC)及相关的功能.旨在为使用 Qt/Symbian/Java™ API为Nokia手机开发应用的开发者 刚开始接触NFC开发时提供有用的信息. 什 ...

  7. 一张图片入门Python

    一张图片入门Python 之前已有别人整理了,一张图入门Python,快速了解各种基本的语法. 英文版: 图 5.1. Quick Python Script Explanation 中文版: 图 5 ...

  8. C语言的本质(20)——预处理之二:条件预处理和包含头文件

    我们可以通过定义不同的宏来决定编译程序对哪些代码进行处理.条件编译指令将决定那些代码被编译,而哪些是不被编译的.可以根据表达式的值或者某个特定的宏是否被定义来确定编译条件. 条件编译可分为三种情况,按 ...

  9. hdu 1241 Oil Deposits_dfs or bfs

    题意:给你n*m的图,@代表有油田的格子,*代表没油田的格子,如果油田旁边有油田就合并一起成为一个油田区,合并的方向为8个,现在问你油田合并过后,有多少个油田区 解法:用dfs or bfs dfs: ...

  10. sysbench的安装与使用

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试.数据库目前支持MySQL/Oracle/PostgreSQL 安装过程(rhel5.8+mys ...