一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

ICSFile:重新封装C# File类

时间:2015-01-29 编辑:简简单单 来源:一聚教程网

当路径D:\web\不存在时,下边两个语句都会抛错:


File.WriteAllText(@"D:\web\index.htm", "111com.net");
File.ReadAllText(@"D:\web\index.htm");

ICSFile:重新封装C# File类

平时调用WriteAllText前都得先调用Directory.Exists和Directory.CreateDirectory,换句话说,创建文件和创建所属文件夹应为一个整体,而读取文件时,创建所属文件夹显然不合适,基于这一原则,重新封装了C# File类:

复制内容到剪贴板 程序代码
public static class ICSFile
{
    private static readonly Encoding DEFAULTENCODE = Encoding.UTF8;

    ///


    /// 创建父文件夹
    ///

    ///
    ///
    private static void CreateDirectory(string path)
    {
        string dir = Path.GetDirectoryName(path);
        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
    }

    ///


    /// 追加文本
    ///

    ///
    ///
    public static void AppendAllText(string path, string contents)
    {
        AppendAllText(path, contents, DEFAULTENCODE);
    }

    ///


    /// 追加文本
    ///

    ///
    ///
    ///
    public static void AppendAllText(string path, string contents, Encoding encoding)
    {
        CreateDirectory(path);
        File.AppendAllText(path, contents, encoding);
    }

    ///


    /// 复制文件
    ///

    ///
    ///
    public static void Copy(string sourceFileName, string destFileName)
    {
        Copy(sourceFileName, destFileName, false);
    }

    ///


    /// 复制文件
    ///

    ///
    ///
    ///
    public static void Copy(string sourceFileName, string destFileName, bool overwrite)
    {
        CreateDirectory(destFileName);
        File.Copy(sourceFileName, destFileName, overwrite);
    }

    ///


    /// 删除文件
    ///

    ///
    public static void Delete(string path)
    {
        File.Delete(path);
    }

    ///


    /// 判断文件是否存在
    ///

    ///
    ///
    public static bool Exists(string path)
    {
        return File.Exists(path);
    }

    ///


    /// 移动文件
    ///

    ///
    ///
    public static void Move(string sourceFileName, string destFileName)
    {
        Move(sourceFileName, destFileName, false);
    }

    ///


    /// 移动文件
    ///

    ///
    ///
    ///
    public static void Move(string sourceFileName, string destFileName, bool overwrite)
    {
        if (overwrite && File.Exists(destFileName))
        {
            File.Delete(destFileName);
        }
        CreateDirectory(destFileName);
        File.Move(sourceFileName, destFileName);
    }

    ///


    /// 读取文件
    ///

    ///
    ///
    public static string ReadAllText(string path)
    {
        return ReadAllText(path, DEFAULTENCODE);
    }

    ///


    /// 读取文件
    ///

    ///
    ///
    ///
    public static string ReadAllText(string path, Encoding encoding)
    {
        return File.ReadAllText(path, encoding);
    }

    ///


    /// 创建一个新文件写入文本
    ///

    ///
    ///
    public static void WriteAllText(string path, string contents)
    {
        WriteAllText(path, contents, DEFAULTENCODE);
    }

    ///


    /// 创建一个新文件写入文本
    ///

    ///
    ///
    ///
    public static void WriteAllText(string path, string contents, Encoding encoding)
    {
        CreateDirectory(path);
        File.WriteAllText(path, contents, encoding);
    }
}

热门栏目