当前位置:  编程技术>.net/c#/asp.net

c#文件助手类分享(读取文件内容 操作日志文件)

    来源: 互联网  发布时间:2014-10-28

    本文导语:  代码如下:using System;using System.Collections.Generic;using System.IO;using System.Text.RegularExpressions;using System.Linq;using System.Runtime.InteropServices;namespace Humep.FileWatcher{    ///     /// 日志文件操作    /// Date:2011-06-01    ///     public static clas...

代码如下:

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
using System.Linq;
using System.Runtime.InteropServices;
namespace Humep.FileWatcher
{
    ///
    /// 日志文件操作
    /// Date:2011-06-01
    ///
    public static class FileHelper
    {
        ///
        /// 获取文件路径中最后的目录名
        ///
        ///
        ///
        public static string GetDirectoryName(string fullName)
        {
            if (string.IsNullOrWhiteSpace(fullName))
            {
                return null;
            }
            return fullName.Substring(0,fullName.LastIndexOf('\')+1);
        }
        ///
        /// 获取路径中的文件名称
        ///
        ///
        ///
        public static string GetFileName(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath))
            {
                return string.Empty;
            }
            if (filePath.Length > 260)
            {
                return filePath.Substring(filePath.LastIndexOf('\') + 1, int.MaxValue);
            }
            return Path.GetFileName(filePath);
        }

        ///
        /// 文件名是否满足filePattern格式。
        ///
        ///
        public static bool IsMatched(string fileName, string filePattern)
        {
            if (string.IsNullOrWhiteSpace(fileName))
            {
                return false;
            }
            if (string.IsNullOrWhiteSpace(filePattern))
            {
                return false;
            }
            Regex regex = new Regex(filePattern, RegexOptions.IgnoreCase);
            return regex.IsMatch(fileName);
        }

        ///
        /// 读取文件内容
        ///
        ///
        ///
        public static string ReadAllText(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath) || File.Exists(filePath) == false)
            {
                return string.Empty;
            }
            return File.ReadAllText(filePath);
        }
        ///
        /// 删除文件
        ///
        ///
        public static bool Delete(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath))
            {
                return false;
            }
            if (!File.Exists(filePath))
            {
                return false;
            }
            File.Delete(filePath);
            return !File.Exists(filePath);
        }
        ///
        /// 删除目录下所有过期文件
        ///
        ///
        ///
        public static int ClearExpiredFiles(string directory, int expiredDays)
        {
            if (!Directory.Exists(directory))
            {
                return 0;
            }
            if (expiredDays 260)
            {
                return MoveLongPathFile(@"\?"+sourcePath,@"\?"+ targetPath);
            }
            File.Move(sourcePath, targetPath);
            return true;
        }

        [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true, EntryPoint = "MoveFile")]
        [return: MarshalAs(UnmanagedType.Bool)]
        private static extern bool MoveLongPathFile(string lpExistingFileName, string lpNewFileName);
        ///
        /// 单个文件移动
        ///
        ///
        ///
        ///
        ///
        public static bool MoveFile(string fileName, string sourceDirectory, string targetDirectory)
        {
            if (!File.Exists(fileName))
            {
                return false;
            }
            if (!Directory.Exists(sourceDirectory))
            {
                return false;
            }
            if (!Directory.Exists(targetDirectory))
            {
                return false;
            }
            string filePath = fileName.Replace(sourceDirectory, targetDirectory);
            string fileDir=Path.GetDirectoryName(filePath);
            if(!DirectoryHelper.CreateDirectory(fileDir))
            {
                return false;
            }
            return MoveFile(fileName, fileDir);
        }
        ///
        /// 重新生成新的文件路径
        ///
        ///
        ///
        public static string Rename(string filePath)
        {
            if (string.IsNullOrWhiteSpace(filePath))
            {
                return string.Empty;
            }
            string lastFileName = Path.GetFileNameWithoutExtension(filePath);
            string lastFileExtension = Path.GetExtension(filePath);
            //重命名,则随机在原来文件名后面加几个随机数字进行组装成新的名字
            Random random = new Random(System.DateTime.Now.Millisecond);
            string randomData = random.Next().ToString();
            //把原文件名的名字加上随机数,组装成新的文件名(避免重名)
            string newFileName = lastFileName + randomData;
            return Path.GetDirectoryName(filePath) + "\" + newFileName + lastFileExtension;
        }

    }
}


    
 
 

您可能感兴趣的文章:

  • c#如何生成Excel(.xls和.xlsx)文件
  • 将ocx文件转换成C#程序引用的DLL文件的办法
  • C#删除文件夹和文件到回收站示例
  • C#逐行读取txt文件的方法
  • c# 递归访问文件夹(删掉歌词文件)
  • C# WinForm编程获取文件物理路径的方法
  • C#文件管理类Directory实例分析
  • c#文件夹 递归访问的实现代码
  • c# 删除空文件夹的代码
  • C#清空添加的txt文件的实例代码
  • C#格式化文件大小的实现代码
  • C# 读取配置文件(指定路径)的方法
  • C# 获取程序集版本、文件版本
  • C#实现判断图形文件格式的方法
  • Web服务器/前端 iis7站长之家
  • 用c#获得当前用户的Application Data文件夹位置
  • C# 读取指定路径配置文件的方法
  • C# 执行bat批处理文件的小例子
  • C# 获取系统特殊文件夹路径的方法
  • C#操作txt文件,进行清空添加操作的小例子
  • C#递归实现显示文件夹及所有文件并计算其大小的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3