php 文件操作类
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 文件操作类的更多相关文章
- [C#] 常用工具类——文件操作类
/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...
- 文件操作类CFile
CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...
- asp.net文件操作类
/** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...
- android 文件操作类简易总结
android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...
- Ini文件操作类
/// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...
- java csv 文件 操作类
一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
- Qt5:Qt文件操作类 QFile
在QT中,操作文件一般不使用C++提供的文件操作类 , 因为操作文件的时候,要用到C++提供的 string 类,而在QT中使用的是Qt自己实现的一个string类 QString .在Qt中使用C+ ...
- C# 文件操作类大全
C# 文件操作类大全 时间:2015-01-31 16:04:20 阅读:1724 评论:0 收藏:0 [点我收藏+] 标签: 1.创建文件夹 //usin ...
- Java文件操作类效率对比
前言 众所周知,Java中有多种针对文件的操作类,以面向字节流和字符流可分为两大类,这里以写入为例: 面向字节流的:FileOutputStream 和 BufferedOutputStream 面向 ...
- JAVA文件操作类和文件夹的操作代码示例
JAVA文件操作类和文件夹的操作代码实例,包括读取文本文件内容, 新建目录,多级目录创建,新建文件,有编码方式的文件创建, 删除文件,删除文件夹,删除指定文件夹下所有文件, 复制单个文件,复制整个文件 ...
随机推荐
- 屏蔽鼠标右键功能JS
<script language="Javascript"> function hiderightKey(){ return false; } docum ...
- 总结:整理 oracle异常错误处理 .
5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发 ...
- Repository仓储 UnitofWork
Repository仓储 UnitofWork 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对 ...
- Cxf -Wsdl2java详细参数附录
wsdl2java用法: wsdl2java -p com -d src -all aa.wsdl -p 指定其wsdl的命名空间,也就是要生成代码的包名: -d 指定要产生代码所在目录 -cl ...
- URL组成介绍
1.2. HTTP request ----------------- First, let's consider this HTTP request : Line Contents number 1 ...
- Ruby小例子
1.ruby定义函数与执行函数案例 def fact(n) ) end end print fact() 结果: 24 2.一个小例子 words = [)] print "guess?\n ...
- LINUX下DNS的查看和配置
linux下好像没有专门的DNS查看命令. 用ifconfig命令也是看不到DNS的信息.(也可能是我不知道) 本机的DNS配置信息是在:/etc/resolv.conf [root@localhos ...
- How ASP.NET MVC Works?
原文地址:http://www.cnblogs.com/artech/archive/2012/04/10/how-mvc-works.html?ADUIN=7783008&ADSESSION ...
- codeforces gym 100187M Heaviside Function
//大概就是没想起来怎么做 解法:首先观察seitan方程,发现我们要找的是满足seitan(si*x-ai)=1的方程数,即si*x-ai>=0的方程数,因为si=1 or -1,于是分类讨论 ...
- hdu 1035 Robot Motion(模拟)
Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...