当路径D:\web\不存在时,下边两个语句都会抛错:
File.WriteAllText(@"D:\web\index.htm", "111com.net");
File.ReadAllText(@"D:\web\index.htm");
平时调用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);
}
}