⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfile.cs

📁 KTDictSeg 简介: KTDictSeg 是由KaiToo搜索开发的一款基于字典的简单中英文分词算法 * 主要功能: 中英文分词
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 + -