📄 cfile.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
namespace FTAlgorithm.General
{
/// <summary>
/// 获取当前进程运行的工作路径名的类
/// 该类不运行被继承
/// </summary>
public sealed class CGetCurrentDir
{
private static CGetCurrentDir soGetCurrentDir = new CGetCurrentDir();
private static String m_ProcessDir;
private CGetCurrentDir ()
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
m_ProcessDir = p.MainModule.FileName;
m_ProcessDir = CFile.GetPath(m_ProcessDir);
}
/// <summary>
/// 进程的启动路径
/// </summary>
static public String ProcessDirectory
{
get
{
return m_ProcessDir;
}
}
/// <summary>
/// 获取设置当前的工作路径
/// </summary>
static public String CurrentDirectory
{
set
{
Environment.CurrentDirectory = value;
}
get
{
return Environment.CurrentDirectory + "\\";
}
}
};
/// <summary>
/// 目录操作类
/// </summary>
public class CDir
{
/// <summary>
/// 获取系统目录的完全限定路径,路径名以"\"结尾
/// 例如,返回值为字符串“C:\WinNT\System32\”。
/// </summary>
public static String SystemDirectory
{
get
{
return Environment.SystemDirectory + "\\";
}
}
/// <summary>
/// 系统所在驱动器号
/// </summary>
public static Char SystemDriver
{
get
{
return Environment.SystemDirectory[0];
}
}
/// <summary>
/// 创建目录
/// </summary>
/// <param name="dir">目录名</param>
public static void CreateDirectory(String dir)
{
Directory.CreateDirectory(dir);
}
/// <summary>
/// 目录是否存在
/// </summary>
/// <param name="dir">目录名</param>
/// <returns>存在返回true</returns>
public static bool DirectoryExists(String dir)
{
return Directory.Exists(dir);
}
};
/// <summary>
/// 文件操作类
/// </summary>
public class CFile
{
/// <summary>
/// 移动文件
/// </summary>
/// <param name="oldFile"></param>
/// <param name="newFile"></param>
static public void Move(String oldFile, String newFile)
{
File.Move(oldFile, newFile);
}
/// <summary>
/// 拷贝文件
/// </summary>
/// <param name="oldFile"></param>
/// <param name="newFile"></param>
static public void Copy(String oldFile, String newFile)
{
File.Copy(oldFile, newFile);
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="fileName"></param>
static public void Delete(String fileName)
{
File.Delete(fileName);
}
/// <summary>
/// 文件是否存在
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns>存在返回true</returns>
static public bool Exists(String fileName)
{
return File.Exists(fileName);
}
/// <summary>
/// 获取文件大小
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
static public Int64 GetFileLength(String fileName)
{
FileInfo myInfo = new FileInfo(fileName);
return myInfo.Length;
}
/// <summary>
/// 获取文件最后一次修改时间
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns>返回修改时间</returns>
static public DateTime GetLastWriteTime(String fileName)
{
return File.GetLastWriteTime(fileName);
}
/// <summary>
/// 获取文件创建时间
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns>返回创建时间</returns>
static public DateTime GetCreationTime(String fileName)
{
return File.GetCreationTime(fileName);
}
/// <summary>
/// 把文件读取到内存流中
/// </summary>
/// <param name="FileName">文件名</param>
/// <returns>内存流</returns>
/// <exception cref="CFileException">
/// 读入失败触发返回 ExceptionCode.FileReadFail异常
/// </exception>
static public MemoryStream ReadFileToStream(String FileName)
{
byte[] Bytes = new byte[32768];
int read = 0;
int offset = 0;
FileStream fs = null;
bool FileOpened = false ;
try
{
MemoryStream mem = new MemoryStream();
fs = new FileStream(FileName, FileMode.Open , FileAccess.Read);
FileOpened = true ;
mem.Position = 0;
while ((read = fs.Read(Bytes, 0, Bytes.Length)) > 0)
{
offset += read;
mem.Write(Bytes, 0, read);
}
fs.Close();
return mem;
}
catch (Exception e)
{
if (FileOpened)
{
try
{
fs.Close();
}
catch
{
}
}
CFileException fse = new CFileException(ExceptionCode.FileReadFail
,String.Format("Read File : {0} Fail! ErrMsg={1}",FileName, e.Message), e);
fse.Raise();
return null;
}
}
/// <summary>
/// 文件读入到字符数组中
/// </summary>
/// <param name="FileName">文件名</param>
/// <param name="buf">输出字符数组</param>
/// <param name="Encode">
/// 编码方式
/// 如 "gb2312" "utf-8"
/// </param>
/// <exception cref="CFileException">
/// 读入失败触发返回 ExceptionCode.FileReadFail异常
/// </exception>
static public void ReadFileToChars(String FileName, out Char[] buf, String Encode)
{
bool FileOpened = false ;
FileStream fs = null;
buf = null;
try
{
fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
CStream.ReadStreamToChars(fs, out buf, Encode);
fs.Close();
}
catch (Exception e)
{
if (FileOpened)
{
try
{
fs.Close();
}
catch
{
}
}
CFileException fse = new CFileException(ExceptionCode.FileReadFail
,String.Format("Read File : {0} Fail!",FileName), e);
fse.Raise();
}
}
/// <summary>
/// 将文件读入到一个String对象中
/// </summary>
/// <param name="FileName">文件名</param>
/// <param name="Encode">编码方式</param>
/// <returns>String 对象</returns>
/// <exception cref="CFileException">
/// 读入失败触发返回 ExceptionCode.FileReadFail异常
/// </exception>
static public String ReadFileToString(String FileName, String Encode)
{
bool FileOpened = false;
FileStream fs = null;
String str;
try
{
fs = new FileStream(FileName, FileMode.Open, FileAccess.Read);
CStream.ReadStreamToString(fs, out str, Encode);
fs.Close();
return str;
}
catch (Exception e)
{
if (FileOpened)
{
try
{
fs.Close();
}
catch
{
}
}
CFileException fse = new CFileException(ExceptionCode.FileReadFail
, String.Format("Read File : {0} Fail!", FileName), e);
fse.Raise();
return null;
}
}
/// <summary>
/// 将文件读入到一个StringBuilder对象中
/// </summary>
/// <param name="FileName">文件名</param>
/// <param name="Encode">编码方式</param>
/// <returns>StringBuilder 对象</returns>
/// <exception cref="CFileException">
/// 读入失败触发返回 ExceptionCode.FileReadFail异常
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -