• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现最完整的文件和目录操作类实例

C#实现最完整的文件和目录操作类实例

作者:电子灵魂 字体:[增加 减小] 来源:互联网 时间:2017-05-28

电子灵魂 通过本文主要向大家介绍了c站,c语言,欲情 c max,维生素c,crh2c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#实现最完整的文件和目录操作类。分享给大家供大家参考。具体如下:

using System;
using System.Text;
using System.IO;
namespace HelloCsharp.Utilities
{
 /// <summary>
 /// 文件操作类
 /// </summary>
 public static class DirFile
 {
  #region 检测指定目录是否存在
  /// <summary>
  /// 检测指定目录是否存在
  /// </summary>
  /// <param name="directoryPath">目录的绝对路径</param>
  /// <returns></returns>
  public static bool IsExistDirectory(string directoryPath)
  {
   return Directory.Exists(directoryPath);
  }
  #endregion
  #region 检测指定文件是否存在,如果存在返回true
  /// <summary>
  /// 检测指定文件是否存在,如果存在则返回true。
  /// </summary>
  /// <param name="filePath">文件的绝对路径</param>  
  public static bool IsExistFile(string filePath)
  {
   return File.Exists(filePath);
  }
  #endregion
  #region 获取指定目录中的文件列表
  /// <summary>
  /// 获取指定目录中所有文件列表
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  public static string[] GetFileNames(string directoryPath)
  {
   //如果目录不存在,则抛出异常
   if (!IsExistDirectory(directoryPath))
   {
    throw new FileNotFoundException();
   }
   //获取文件列表
   return Directory.GetFiles(directoryPath);
  }
  #endregion
  #region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
  /// <summary>
  /// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  public static string[] GetDirectories(string directoryPath)
  {
   try
   {
    return Directory.GetDirectories(directoryPath);
   }
   catch (IOException ex)
   {
    throw ex;
   }
  }
  #endregion
  #region 获取指定目录及子目录中所有文件列表
  /// <summary>
  /// 获取指定目录及子目录中所有文件列表
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  /// <param name="isSearchChild">是否搜索子目录</param>
  public static string[] GetFileNames(string directoryPath, string searchPattern, bool isSearchChild)
  {
   //如果目录不存在,则抛出异常
   if (!IsExistDirectory(directoryPath))
   {
    throw new FileNotFoundException();
   }
   try
   {
    if (isSearchChild)
    {
     return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories);
    }
    else
    {
     return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
    }
   }
   catch (IOException ex)
   {
    throw ex;
   }
  }
  #endregion
  #region 检测指定目录是否为空
  /// <summary>
  /// 检测指定目录是否为空
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  public static bool IsEmptyDirectory(string directoryPath)
  {
   try
   {
    //判断是否存在文件
    string[] fileNames = GetFileNames(directoryPath);
    if (fileNames.Length > 0)
    {
     return false;
    }
    //判断是否存在文件夹
    string[] directoryNames = GetDirectories(directoryPath);
    if (directoryNames.Length > 0)
    {
     return false;
    }
    return true;
   }
   catch
   {
    //这里记录日志
    //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    return true;
   }
  }
  #endregion
  #region 检测指定目录中是否存在指定的文件
  /// <summary>
  /// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法.
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  public static bool Contains(string directoryPath, string searchPattern)
  {
   try
   {
    //获取指定的文件列表
    string[] fileNames = GetFileNames(directoryPath, searchPattern, false);

    //判断指定文件是否存在
    if (fileNames.Length == 0)
    {
     return false;
    }
    else
    {
     return true;
    }
   }
   catch (Exception ex)
   {
    throw new Exception(ex.Message);
    //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
   }
  }
  /// <summary>
  /// 检测指定目录中是否存在指定的文件
  /// </summary>
  /// <param name="directoryPath">指定目录的绝对路径</param>
  /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 
  /// <param name="isSearchChild">是否搜索子目录</param>
  public static bool Contains(string directoryPath, string searchPattern, bool isSearchChild)
  {
   try
   {
    //获取指定的文件列表
    string[] fileNames = GetFileNames(directoryPath, searchPattern, true);

    //判断指定文件是否存在
    if (fileNames.Length == 0)
    {
     return false;
    }
    else
    {
     return true;
    }
   }
   catch (Exception ex)
   {
    throw new Exception(ex.Message);
    //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
   }
  }
  #endregion
  #region 创建目录
  /// <summary>
  /// 创建目录
  /// </summary>
  /// <param name="dir">要创建的目录路径包括目录名</param>
  public static void CreateDir(string dir)
  {
   if (dir.Length == 0) return;
   if (!Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir))
    Directory.CreateDirectory(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir);
  }
  #endregion
  #region 删除目录
  /// <summary>
  /// 删除目录
  /// </summary>
  /// <param name="dir">要删除的目录路径和名称</param>
  public static void DeleteDir(string dir)
  {
   if (dir.Length == 0) return;
   if (Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir))
    Directory.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir);
  }
  #endregion
  #region 删除文件
  /// <summary>
  /// 删除文件
  /// </summary>
  /// <param name="file">要删除的文件路径和名称</param>
  public static void DeleteFile(string file)
  {
   if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file))
    File.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file);
  }
  #endregion
  #region 创建文件
  /// <summary>
  /// 创建文件
  /// </summary>
  /// <param name="dir">带后缀的文件名</param>
  /// <param name="pagestr">文件内容</param>
  public static void CreateFile(string dir, string pagestr)
  {
   dir = dir.Replace("/", "\\");
   if (dir.IndexOf("\\") > -1)
    CreateDir(dir.Substring(0, dir.LastIndexOf("\\")));
   System.IO.StreamWriter sw = new System.IO.StreamWriter(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir, false, System.Text.Encoding.GetEncoding("GB2312"));
   sw.Write(pagestr);
   sw.Close();
  }
  #endregion
  #region 移动文件(剪贴--粘贴)
  /// <summary>
  /// 移动文件(剪贴--粘贴)
  /// </summary>
  /// <param name="dir1">要移动的文件的路径及全名(包括后缀)</param>
  /// <param name="dir2">文件移动到新的位置,并指定新的文件名</param>
  public static void MoveFile(string dir1, string dir2)
  {
   dir1 = dir1.Replace("/", "\\");
   dir2 = dir2.Replace("/", "\\");
   if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1))
    File.Move(S



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C#私有构造函数使用示例
  • 2017-05-28在C#使用字典存储事件示例及实现自定义事件访问器
  • 2017-05-28WinForm自定义控件应用实例
  • 2017-05-28C#中Linq延迟查询的例子
  • 2017-05-28System.Data.OleDb.OleDbException: 未指定的错误的完美解决方法
  • 2017-05-28C#探秘系列(三)——StackTrace,Trim
  • 2017-05-28C#设置WinForm中DataGrid列的方法(列宽/列标题等)
  • 2017-05-28C#中将ListView中数据导出到Excel的实例方法
  • 2017-05-28C#实现将应用程序设置为开机启动的方法
  • 2017-05-28使用DateTime的ParseExact方法实现特殊日期时间的方法详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现解压GZip文件的方法
    • C#获取路径的几种方式实例分析
    • 使用MSScriptControl 在 C# 中读取json数据的方法
    • C#开源的AOP框架--KingAOP基础
    • C#设计模式编程中运用适配器模式结构实战演练
    • c#固定长度的随机字符串例子
    • c#字符串编码编码(encoding)使用方法示例
    • C#实现Access通用访问类OleDbHelper完整实例
    • C#中父窗口和子窗口之间控件互操作实例
    • WinForm中的登录实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有