首页 > 编程语言 >文件工具类 - C#小函数类推荐

文件工具类 - C#小函数类推荐

时间:2024-10-12 09:22:00浏览次数:7  
标签:文件 return 函数 C# file false true dir string

       此文记录的是文件工具类。

/***

    文件工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

***/

namespace Lzhdim.LPF.Utility
{
    using System.Collections;
    using System.IO;

    /// <summary>
    /// The Object End of File
    /// </summary>
    public static class FileUtil
    {
        /// <summary>
        /// Append content to a file
        /// </summary>
        /// <param name="file">file path,include dir and file name</param>
        /// <param name="content">file content which to append</param>
        /// <returns>true append sucess;false append error</returns>
        public static bool Append2File(string file, string content)
        {
            if (!File.Exists(file))
            {
                string dir = System.IO.Path.GetDirectoryName(file);

                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                try
                {
                    FileStream fs = File.Create(file);
                    fs.Close();
                    fs.Dispose();
                }
                catch
                { return false; }
            }

            try
            {
                StreamWriter sw = new StreamWriter(file, true);
                sw.Write(content);
                sw.Close();
                sw.Dispose();

                return true;
            }
            catch
            { }

            return false;
        }

        /// <summary>
        /// copy a file
        /// </summary>
        /// <param name="filePathName">source file</param>
        /// <param name="toFilesPath">target file</param>
        public static void CopyFile(string filePathName, string toFilesPath)
        {
            FileInfo file = new FileInfo(filePathName);
            file.CopyTo(toFilesPath, true);
        }

        /// <summary>
        /// Create a file
        /// </summary>
        /// <param name="file">file path,include dir and file name</param>
        /// <returns>true Create Done;false Create error</returns>
        public static bool CreateFile(string file)
        {
            if (!File.Exists(file))
            {
                string dir = System.IO.Path.GetDirectoryName(file);

                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                try
                {
                    FileStream fs = File.Create(file);
                    fs.Close();
                    fs.Dispose();

                    return true;
                }
                catch
                { }

                return false;
            }

            return true;
        }

        /// <summary>
        /// delete a file
        /// </summary>
        /// <param name="file">dir which need to search</param>
        /// <returns>true delete sucess;false delete error</returns>
        public static bool DeleteFile(string file)
        {
            try
            {
                File.Delete(file);

                return true;
            }
            catch
            { }

            return false;
        }

        /// <summary>
        /// Check if file is exist
        /// </summary>
        /// <param name="file">file path,include dir and file name</param>
        /// <returns>true Exist;false Not Exist</returns>
        public static bool FileIsExist(string file)
        {
            return File.Exists(file);
        }

        /// <summary>
        /// get all appoint files from a dir
        /// </summary>
        /// <param name="dir">dir which need to search</param>
        /// <param name="fileExtendedName">file extennsion.for example '.txt'</param>
        /// <param name="hasSubDir">has sub directory?</param>
        /// <returns>group of filenames</returns>
        public static Hashtable GetAllAppointFileFromDir(string dir, string fileExtension, bool hasSubDir)
        {
            Hashtable ht = new Hashtable();

            DirectoryInfo di = new DirectoryInfo(dir);

            if (!di.Exists)
            {
                return ht;
            }

            FileInfo[] fileInfo = di.GetFiles("*" + fileExtension);  //目录下的文件
            foreach (FileInfo fInfo in fileInfo)
            {
                ht.Add(ht.Count, fInfo.FullName);
            }

            if (hasSubDir)
            {
                DirectoryInfo[] subDirectories = di.GetDirectories();//获得子目录

                foreach (DirectoryInfo dirinfo1 in subDirectories)
                {
                    FileInfo[] fileInfo1 = dirinfo1.GetFiles("*" + fileExtension);  //子目录下的文件
                    foreach (FileInfo fInfo1 in fileInfo1)
                    {
                        ht.Add(ht.Count, fInfo1.FullName);
                    }
                }
            }

            return ht;
        }

        /// <summary>
        /// Read a file 's content
        /// </summary>
        /// <param name="file">file path,include dir and file name</param>
        /// <returns>the content of the file</returns>
        public static string ReadFile(string file)
        {
            if (File.Exists(file))
            {
                try
                {
                    StreamReader sr = new System.IO.StreamReader(file);
                    string rel = sr.ReadToEnd();
                    sr.Close();
                    sr.Dispose();

                    return rel;
                }
                catch
                { }
            }

            return null;
        }

        /// <summary>
        /// Save a file
        /// </summary>
        /// <param name="file">file path,include dir and file name</param>
        /// <param name="content">file content which to save</param>
        /// <returns>true save sucess;false save error</returns>
        public static bool SaveFile(string file, string content)
        {
            if (!File.Exists(file))
            {
                string dir = System.IO.Path.GetDirectoryName(file);

                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                try
                {
                    FileStream fs = File.Create(file);
                    fs.Close();
                    fs.Dispose();
                }
                catch
                { return false; }
            }

            try
            {
                StreamWriter sw = new StreamWriter(file, false);
                sw.Write(content);
                sw.Close();
                sw.Dispose();

                return true;
            }
            catch
            { }

            return false;
        }
    }
}

 

标签:文件,return,函数,C#,file,false,true,dir,string
From: https://www.cnblogs.com/lzhdim/p/18340690

相关文章

  • 如何高效撰写和发表SCI论文
    第一章、论文写作准备即为最关键1、科技论文写作前期的重要性及其分类2、AI工具如何助力学术论文3、研究主题确定及提高创新性兴趣与背景:选择一个您感兴趣且有背景知识的研究领域。创新性:选题和研究设计阶段如何提高学术创新性的方法。研究缺口:找出该领域中尚未解决......
  • Day5 备战CCF-CSP练习
    题目描述给定\(n\)个不同的整数,问这些数中有多少对整数,它们的值正好相差\(1\)。输出格式输入的第一行包含一个整数\(n\),表示给定整数的个数。第二行包含所给定的$n$个整数。输出格式输出一个整数,表示值正好相差\(1\)的数对的个数。数据范围\(1≤n≤1000\),给定的......
  • ORACLE 查询指定时间之内的日、月及其他汇总
    oracle查询一年内所有日期:SELECTTO_CHAR(SYSDATE-interval‘1’year+ROWNUM,‘YYYY-MM-DD’)checkDateFROMDUALCONNECTBYROWNUM<=SYSDATE-(SYSDATE-interval‘1’year)ORDERBYcheckDateDESCoracle查询本月所有日期:selectTRUNC(sysdate,‘MM’)+ROWNU......
  • 【C#】文件操作
    创建文件夹if(!Directory.Exists(desPath)){try{Directory.CreateDirectory(desPath);}catch(Exceptione){thrownewException("创建目标目录失败:"+e.Message);}}创建文件using(System.IO.StreamWriterfile=new......
  • Java中class对象的学习
    Class对象目录Class对象获取class对象的三种方法获取类的各种信息获取类名获取类修饰符获取包的信息获取父类的class对象获取接口信息构造函数Constructor两种创建对象的方式使用Class.forName()加载类并创建对象使用Class.forName()加载类,并调用特定的构造器获取class对象的三......
  • Invicti v24.10.0 for Windows - Web 应用程序安全测试
    Invictiv24.10.0forWindows-Web应用程序安全测试InvictiStandardv24.10.0–8October2024请访问原文链接:https://sysin.org/blog/invicti/查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgInvicti是一种自动化但完全可配置的Web应用程序安全扫描程序,使......
  • 南沙C++信奥赛陈老师解一本通题 1939:【07NOIP普及组】纪念品分组
    ​ 【题目描述】元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完......
  • 【命令操作】查看和分析系统各类日志--journalctl
    原文链接:【命令操作】查看和分析系统各类日志–journalctl|统信|麒麟|方德Hello,大家好啊!今天给大家带来一篇关于Linux系统上journalctl命令详解的文章。journalctl是systemd的日志查看工具,用于查看和管理系统日志,包括内核消息、服务日志、用户日志等。通过journalctl......
  • sicp每日一题[2.42]
    这道题太难了,我自己只完成了empty-board这一个定义,其他的函数即使看了别人的答案也研究了半天才搞明白。。;board-size指的是正方形棋盘的长(define(queensboard-size)(define(queen-colsk)(if(=k0)(listempty-board)(filter......
  • 题解 QOJ5048【[ECFinal19K] All Pair Maximum Flow】
    题目描述给你一个\(n\)个点\(m\)条边的图,它是平面上的正\(n\)边形和一些对角线,节点按逆时针方向编号为\(1\)到\(n\)。对角线只可能在节点处相交。每条边有一个容量,求每个点对之间的最大流的和。\(n\leq200000,m\leq400000\)。solution做法每次找出边权最小的边\(......