用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

文件管理类

2016-09-26 作者: 疯信子举报

[c#]代码库

using System;
using System.Text;
using System.Web;
using System.IO;

public class FileHelper
{
	#region 文件/目录是否存在

	/// <summary>
	/// 判断给定字符串是否是有效存在的目录
	/// </summary>
	/// <param name="path">目录字符串</param>
	/// <returns></returns>
	public static bool IsExistDirectory(string path)
	{
		return Directory.Exists(path);
	}

	/// <summary>
	/// 判断给定字符串是事有效存在的文件
	/// </summary>
	/// <param name="path">文件路径</param>
	/// <returns></returns>
	public static bool IsExistFile(string path)
	{
		return File.Exists(path);
	}

	#endregion

	#region 取得文件后缀名

	/// <summary>
	/// 获取指定文件的扩展名(不含.)
	/// </summary>
	/// <param name="file">文件路径</param>
	/// <returns></returns>
	public static string GetExtensionStr(string file)
	{
		string str = Path.GetExtension(file);
		if (str.Length > 1)
			return str.Substring(1);
		else
			return "";
	}

	#endregion

	#region 取得文件名

	/// <summary>
	/// 取得文件名(包含扩展名)
	/// </summary>
	/// <param name="file">文件路径</param>
	/// <returns></returns>
	public static string GetFileFullName(string file)
	{
		return Path.GetFileName(file);
	}

	/// <summary>
	/// 取得文件名(不含扩展名)
	/// </summary>
	/// <param name="file">文件路径</param>
	/// <returns></returns>
	public static string GetFileNameWithoutExtension(string file)
	{
		return Path.GetFileNameWithoutExtension(file);
	}

	/// <summary>
	/// 取得指定路径(目录/文件)的最末级目录名
	/// </summary>
	/// <param name="path">路径</param>
	/// <returns></returns>
	public static string GetDirectoryName(string path)
	{
		if (File.Exists(path))
		{
			return Path.GetDirectoryName(path);
		}
		else // if (Directory.Exists(path))
		{
			return Path.GetDirectoryName(Path.Combine(path, Path.DirectorySeparatorChar.ToString()));
		}
	}

	#endregion

	#region 拷贝文件

	/// <summary>
	/// 拷贝文件
	/// </summary>
	/// <param name="sourceFile">原始文件</param>
	/// <param name="destFile">新文件路径</param>
	public static void FileCoppy(string sourceFile, string destFile)
	{
		File.Copy(sourceFile, destFile, true);
	}

	#endregion

	#region 删除文件

	/// <summary>
	/// 删除文件
	/// </summary>
	/// <param name="file">路径</param>
	public static void FileDelete(string file)
	{
		File.Delete(file);
	}
	#endregion

	#region 移动文件

	/// <summary>
	/// 移动文件
	/// </summary>
	/// <param name="OrignFile">原始路径</param>
	/// <param name="NewFile">新路径</param>
	public static void FileMove(string OrignFile, string NewFile)
	{
		Directory.CreateDirectory(Path.GetDirectoryName(NewFile));
		if (File.Exists(OrignFile))
			File.Move(OrignFile, NewFile);
	}
	#endregion

	#region 创建目录

	/// <summary>
	/// 创建文件夹
	/// </summary>
	/// <param name="Path"></param>
	public static void FolderCreate(string Path)
	{
		// 判断目标目录是否存在如果不存在则新建之
		if (!Directory.Exists(Path))
			Directory.CreateDirectory(Path);
	}

	#endregion

	#region 删除目录及子目录及文件

	/// <summary>
	/// 递归删除文件夹目录及文件
	/// </summary>
	/// <param name="dirPath"></param>  
	/// <returns></returns>
	public static void FolderDelete(string dirPath)
	{
		Directory.Delete(dirPath, true);
	}

	#endregion

	#region 文件夹内容COPY

	/// <summary>
	/// 指定文件夹下面的所有内容copy到目标文件夹下面
	/// </summary>
	/// <param name="sourcePath">原始路径</param>
	/// <param name="destPath">目标文件夹</param>
	public static void FolderCopy(string sourcePath, string destPath)
	{
		string sPath = Path.GetFullPath(sourcePath);
		string dPath = Path.GetFullPath(destPath);

		foreach (string key in Directory.GetDirectories(sPath, "*", SearchOption.AllDirectories))
		{
			if (!Directory.Exists(key.Replace(sPath, dPath)))
				Directory.CreateDirectory(key.Replace(sPath, dPath));
		}
		foreach (string file in Directory.GetFiles(sPath, "*", SearchOption.AllDirectories))
		{
			File.Copy(file, file.Replace(sPath, dPath), true);
		}
	}
	#endregion

	#region 获取文件大小

	/// <summary>
	/// 获取文件大小
	/// </summary>
	/// <param name="file">文件路径</param>
	/// <returns></returns>
	public static long GetFileSize(string file)
	{
		FileInfo fi = new FileInfo(file);
		if (fi != null)
			return fi.Length;
		else
			return 0;
	}

	#endregion

	#region 获取文件夹大小

	/// <summary>
	/// 获取文件夹大小
	/// </summary>
	/// <param name="dirPath">文件夹路径</param>
	/// <returns></returns>
	public static long GetFolderSize(string dirPath)
	{
		if (!Directory.Exists(dirPath))
			return 0;
		long len = 0;
		FileInfo fi;
		foreach (string key in Directory.GetFiles(dirPath, "*", SearchOption.AllDirectories))
		{
			fi = new FileInfo(key);
			len += fi.Length;
		}
		return len;
	}
	#endregion


}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...