欢迎光临

木子屋

标题: ICSFile：重新封装C# File类

作者: dnawo

日期: 2015-01-29 01:06 AM

分类: Win编程

内容: 当路径D:\web\不存在时，下边两个语句都会抛错：
复制内容到剪贴板 程序代码File.WriteAllText(@"D:\web\index.htm", "mzwu.com");
File.ReadAllText(@"D:\web\index.htm");
平时调用WriteAllText前都得先调用Directory.Exists和Directory.CreateDirectory，换句话说，创建文件和创建所属文件夹应为一个整体，而读取文件时，创建所属文件夹显然不合适，基于这一原则，重新封装了C# File类：
复制内容到剪贴板 程序代码public static class ICSFile
{
private static readonly Encoding DEFAULTENCODE = Encoding.UTF8;
/// <summary>
/// 创建父文件夹
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
private static void CreateDirectory(string path)
{
string dir = Path.GetDirectoryName(path);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
}
/// <summary>
/// 追加文本
/// </summary>
/// <param name="path"></param>
/// <param name="contents"></param>
public static void AppendAllText(string path, string contents)
{
AppendAllText(path, contents, DEFAULTENCODE);
}
/// <summary>
/// 追加文本
/// </summary>
/// <param name="path"></param>
/// <param name="contents"></param>
/// <param name="encoding"></param>
public static void AppendAllText(string path, string contents, Encoding encoding)
{
CreateDirectory(path);
File.AppendAllText(path, contents, encoding);
}
/// <summary>
/// 复制文件
/// </summary>
/// <param name="sourceFileName"></param>
/// <param name="destFileName"></param>
public static void Copy(string sourceFileName, string destFileName)
{
Copy(sourceFileName, destFileName, false);
}
/// <summary>
/// 复制文件
/// </summary>
/// <param name="sourceFileName"></param>
/// <param name="destFileName"></param>
/// <param name="overwrite"></param>
public static void Copy(string sourceFileName, string destFileName, bool overwrite)
{
CreateDirectory(destFileName);
File.Copy(sourceFileName, destFileName, overwrite);
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="path"></param>
public static void Delete(string path)
{
File.Delete(path);
}
/// <summary>
/// 判断文件是否存在
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static bool Exists(string path)
{
return File.Exists(path);
}
/// <summary>
/// 移动文件
/// </summary>
/// <param name="sourceFileName"></param>
/// <param name="destFileName"></param>
public static void Move(string sourceFileName, string destFileName)
{
Move(sourceFileName, destFileName, false);
}
/// <summary>
/// 移动文件
/// </summary>
/// <param name="sourceFileName"></param>
/// <param name="destFileName"></param>
/// <param name="overwrite"></param>
public static void Move(string sourceFileName, string destFileName, bool overwrite)
{
if (overwrite && File.Exists(destFileName))
{
File.Delete(destFileName);
}
CreateDirectory(destFileName);
File.Move(sourceFileName, destFileName);
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static string ReadAllText(string path)
{
return ReadAllText(path, DEFAULTENCODE);
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="path"></param>
/// <param name="encoding"></param>
/// <returns></returns>
public static string ReadAllText(string path, Encoding encoding)
{
return File.ReadAllText(path, encoding);
}
/// <summary>
/// 创建一个新文件写入文本
/// </summary>
/// <param name="path"></param>
/// <param name="contents"></param>
public static void WriteAllText(string path, string contents)
{
WriteAllText(path, contents, DEFAULTENCODE);
}
/// <summary>
/// 创建一个新文件写入文本
/// </summary>
/// <param name="path"></param>
/// <param name="contents"></param>
/// <param name="encoding"></param>
public static void WriteAllText(string path, string contents, Encoding encoding)
{
CreateDirectory(path);
File.WriteAllText(path, contents, encoding);
}
}

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.711 ms

返回

标题: ICSFile：重新封装C# File类

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.711 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.727 ms

返回