代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
文件操作基类FileHelper类
作者:
泽宇
/ 发布于
2015/1/8
/
809
/// <SUMMARY> /// 文件操作基类提供操作文件和文件夹的方法 /// </SUMMARY> public class FileHelper { #region 格式化输出文件大小 enum Unit { B, KB, MB, GB, ER } /// <summary> /// 计算文件大小 /// </summary> /// <param name="bytes">要计算的字节数</param> /// <param name="_compactFormat">是否保留后两位小数</param> /// <returns></returns> public static string FormatBytes(double bytes, bool _compactFormat) { int unit = 0; while (bytes > 1024) { bytes /= 1024; ++unit; } string s = _compactFormat ? bytes.ToString("F") + " " : ((int)bytes).ToString(); return s + ((Unit)unit).ToString(); } #endregion #region 取得文件后缀名 /// <SUMMARY> /// 取后缀名 /// </SUMMARY> /// <PARAM name="filename">文件名</PARAM> /// <RETURNS>.gif|.html格式</RETURNS> public static string GetPostfixStr(string filename) { int start = filename.LastIndexOf("."); int length = filename.Length; string postfix = filename.Substring(start, length - start); return postfix; } #endregion #region 写文件 /// <SUMMARY> /// 写文件 /// </SUMMARY> /// <PARAM name="Path">文件路径</PARAM> /// <PARAM name="Strings">文件内容</PARAM> public static void WriteFile(string Path, string Strings) { if (!System.IO.File.Exists(Path)) { //Directory.CreateDirectory(Path); System.IO.FileStream f = System.IO.File.Create(Path); f.Close(); f.Dispose(); } System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8); f2.WriteLine(Strings); f2.Close(); f2.Dispose(); } #endregion #region 读文件 /// <SUMMARY> /// 读文件 /// </SUMMARY> /// <PARAM name="Path">文件路径</PARAM> /// <RETURNS></RETURNS> public static string ReadFile(string Path) { string s = ""; if (!System.IO.File.Exists(Path)) s = "不存在相应的目录"; else { StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312")); s = f2.ReadToEnd(); f2.Close(); f2.Dispose(); } return s; } #endregion #region 追加文件 /// <SUMMARY> /// 追加文件 /// </SUMMARY> /// <PARAM name="Path">文件路径</PARAM> /// <PARAM name="strings">内容</PARAM> public static void FileAdd(string Path, string strings) { StreamWriter sw = File.AppendText(Path); sw.Write(strings); sw.Flush(); sw.Close(); sw.Dispose(); } #endregion #region 拷贝文件 /// <SUMMARY> /// 拷贝文件 /// </SUMMARY> /// <PARAM name="OrignFile">原始文件</PARAM> /// <PARAM name="NewFile">新文件路径</PARAM> public static void FileCoppy(string OrignFile, string NewFile) { File.Copy(OrignFile, NewFile, true); } #endregion #region 删除文件 /// <SUMMARY> /// 删除文件 /// </SUMMARY> /// <PARAM name="Path">路径</PARAM> public static void FileDel(string Path) { File.Delete(Path); } #endregion #region 移动文件 /// <SUMMARY> /// 移动文件 /// </SUMMARY> /// <PARAM name="OrignFile">原始路径</PARAM> /// <PARAM name="NewFile">新路径</PARAM> public static void FileMove(string OrignFile, string NewFile) { File.Move(OrignFile, NewFile); } #endregion #region 在当前目录下创建目录 /// <SUMMARY> /// 在当前目录下创建目录 /// </SUMMARY> /// <PARAM name="OrignFolder">当前目录</PARAM> /// <PARAM name="NewFloder">新目录</PARAM> public static void FolderCreate(string OrignFolder, string NewFloder) { Directory.SetCurrentDirectory(OrignFolder); Directory.CreateDirectory(NewFloder); } /// <SUMMARY> /// 创建文件夹 /// </SUMMARY> /// <PARAM name="Path"></PARAM> public static void FolderCreate(string Path) { // 判断目标目录是否存在如果不存在则新建之 if (!Directory.Exists(Path)) Directory.CreateDirectory(Path); } #endregion #region 创建目录 public static void FileCreate(string Path) { FileInfo CreateFile = new FileInfo(Path); //创建文件 if (!CreateFile.Exists) { FileStream FS = CreateFile.Create(); FS.Close(); } } #endregion #region 递归删除文件夹目录及文件 /// <SUMMARY> /// 递归删除文件夹目录及文件 /// </SUMMARY> /// <PARAM name="dir"></PARAM> /// <RETURNS></RETURNS> public static void DeleteFolder(string dir) { if (Directory.Exists(dir)) //如果存在这个文件夹删除之 { foreach (string d in Directory.GetFileSystemEntries(dir)) { if (File.Exists(d)) File.Delete(d); //直接删除其中的文件 else DeleteFolder(d); //递归删除子文件夹 } Directory.Delete(dir, true); //删除已空文件夹 } } /// <SUMMARY> /// 删除目录下的子文件夹及文件 /// </SUMMARY> /// <PARAM name="dir"></PARAM> /// <RETURNS></RETURNS> public static void DeleteDirectory(string dir) { if (Directory.Exists(dir)) //如果存在这个文件夹删除之 { Directory.Delete(dir, true); //删除已空文件夹 } } #endregion #region 将指定文件夹下面的所有内容copy到目标文件夹下面 果目标文件夹为只读属性就会报错。 /// <SUMMARY> /// 指定文件夹下面的所有内容copy到目标文件夹下面 /// </SUMMARY> /// <PARAM name="srcPath">原始路径</PARAM> /// <PARAM name="aimPath">目标文件夹</PARAM> public static void CopyDir(string srcPath, string aimPath) { try { // 检查目标目录是否以目录分割字符结束如果不是则添加之 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; // 判断目标目录是否存在如果不存在则新建之 if (!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath); // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 //如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法 //string[] fileList = Directory.GetFiles(srcPath); string[] fileList = Directory.GetFileSystemEntries(srcPath); //遍历所有的文件和目录 foreach (string file in fileList) { //先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 if (Directory.Exists(file)) CopyDir(file, aimPath + Path.GetFileName(file)); //否则直接Copy文件 else File.Copy(file, aimPath + Path.GetFileName(file), true); } } catch (Exception ee) { throw new Exception(ee.ToString()); } } #endregion #region 获取指定文件夹下所有子目录及文件 /// <summary> /// 获取目录下所有子目录 /// </summary> /// <param name="path"></param> /// <returns></returns> public static DirectoryInfo[] GetFolderDirectorys(string path) { return new DirectoryInfo(path).GetDirectories(); } /// <summary> /// 获取目录下所有的文件 /// </summary> /// <param name="path"></param> /// <returns></returns> public static FileInfo[] GetFolderFiles(string path) { return new DirectoryInfo(path).GetFiles(); } /// <summary> /// 获取目录下所有的文件 /// </summary> /// <param name="path"></param> /// <param name="filetype">文件类型如:jpg|gif|jpeg|png</param> /// <returns></returns> public static FileInfo[] GetFolderFiles(string path, string filetype) { var di = new DirectoryInfo(path); List<FileInfo> rs = new List<FileInfo>(); foreach (var curr in filetype.Split('|')) { rs.AddRange(di.GetFiles("*." + curr.ToLower())); } return rs.ToArray(); } /// 获取文件夹大小 /// </SUMMARY> /// <PARAM name="dirPath">文件夹路径</PARAM> /// <RETURNS></RETURNS> public static long GetDirectoryLength(string dirPath) { if (!Directory.Exists(dirPath)) return 0; long len = 0; DirectoryInfo di = new DirectoryInfo(dirPath); foreach (FileInfo fi in di.GetFiles()) { len += fi.Length; } DirectoryInfo[] dis = di.GetDirectories(); if (dis.Length > 0) { for (int i = 0; i < dis.Length; i++) { len += GetDirectoryLength(dis[i].FullName); } } return len; } #endregion #region 获取指定文件详细属性 /// <SUMMARY> /// 获取指定文件详细属性 /// </SUMMARY> /// <PARAM name="filePath">文件详细路径</PARAM> /// <RETURNS></RETURNS> public static FileInfo GetFileInfo(string filePath) { return new System.IO.FileInfo(filePath); } #endregion }
试试其它关键字
FileHelper
文件操作
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
泽宇
贡献的其它代码
(
1
)
.
文件操作基类FileHelper类
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3