马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

C# 写入日志文件通用方法【能否优化 ==ture?优化思路:指导】

  [复制链接]
查看5470 | 回复4 | 2014-9-26 09:10:25 | 显示全部楼层 |阅读模式
[C#] 纯文本查看 复制代码
public class FileManager
    {

        /// <summary>
        /// 公用的日志文件写入方法【写入数据到txt文件中】
        /// </summary>
        /// <param name="Folder">txt文件的上一级目录,该目录为Folder(文件夹)</param>
        /// <param name="FileName">txt的文件名称,eg: test.txt  文档</param>
        /// <param name="Data">需要写进FileName文件中的数据</param>
        public void Public_WriteIntoTxt_Method(string Folder,string FileName,string Data) 
        {

            ////TODO 需要对文件流的操作进一步进行优化

            //获取程序运行的基目录
            string RunBasePath = AppDomain.CurrentDomain.BaseDirectory;

            //获取txt文件的目录的具体路径
            string FilePath = RunBasePath + Folder;

            //判断此基目录是否存在文件夹Folder

            if (Directory.Exists(FilePath) == true)
            {
                //Folder存在,直接进行数据操作
                //判断txt文件是否存在
                if (ExistsFile_TrueOrFalse(FilePath, FileName) == true)
                {
                    try
                    {
                        //文件存在,直接写入数据
                        WriteDataIntoTxt(FilePath, FileName, Data);
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                }
                else
                {
                    try
                    {
                        //文件不存在,创建文件后再写入数据
                        CreatFileAndWriteData(FilePath, FileName, Data);
                    }
                    catch (Exception e) 
                    {
                        throw e;
                    }
                }

            }
            else 
            {
                //Folder不存在,创建Folder
                Directory.CreateDirectory(FilePath);

                //判断txt文件是否存在
                if (ExistsFile_TrueOrFalse(FilePath, FileName) == true)
                {
                    try
                    {
                        //文件存在,直接写入数据
                        WriteDataIntoTxt(FilePath, FileName, Data);
                    }
                    catch (Exception e)
                    {
                        
                        throw e;
                    }
                }
                else
                {
                    try
                    {
                        //文件不存在,创建文件后再写入数据
                        CreatFileAndWriteData(FilePath, FileName, Data);
                    }
                    catch (Exception)
                    {
                        
                        throw;
                    }
                }
            }
            
        }

        /// <summary>
        /// 判断文件是否存在
        /// </summary>
        /// <param name="FilePath">文件的上一级路径</param>
        /// <param name="FileName">文件的名称</param>
        /// <returns>如果存在该文件则返回True,不存在则返回False</returns>
        public bool ExistsFile_TrueOrFalse(string FilePath, string FileName)
        {
            return File.Exists(FilePath + "/" + FileName);
        }

        /// <summary>
        /// 当通过ExistsFile_TrueOrFalse函数判断文件【不存在】时
        /// 重新创建文件,并向该文件中写入需要写入的数据
        /// 会自动换行
        /// </summary>
        /// <param name="FilePath">文件的上一级路径</param>
        /// <param name="FileName">文件的名称</param>
        /// <param name="Data">需要写入文件的数据流</param>
        public void CreatFileAndWriteData(string FilePath, string FileName, string Data)
        {
            //根据传入的路径和文件的名称创建该文件
            FileStream CreateFile = new FileStream(FilePath + "/" + FileName, FileMode.Create, FileAccess.Write);

            //创建文件成功后开始进行数据写入
            StreamWriter WriteDate = new StreamWriter(CreateFile);

            //尝试写入数据
            try
            {
                WriteDate.WriteLine(Data);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                //写入完成,清楚缓冲区并关闭Stream
                WriteDate.Flush();
                WriteDate.Close();
            }
        }

        /// <summary>
        /// 当通过ExistsFile_TrueOrFalse函数判断文件【存在】时
        /// 将直接向该文件中写入数据
        /// 重新写入的数据会自动换行
        /// </summary>
        /// <param name="FilePath">文件的上一级路径</param>
        /// <param name="FileName">文件的名称</param>
        /// <param name="Data">需要写入文件的数据流</param>
        public void WriteDataIntoTxt(string FilePath, string FileName, string Data)
        {
            //根据传入的文件路径和名称,创建FileStream对象
            FileStream WriteFile = new FileStream(FilePath + "/" + FileName, FileMode.Append, FileAccess.Write);

            //进行数据的写入
            StreamWriter WriteData = new StreamWriter(WriteFile);

            //尝试写入数据
            try
            {
                WriteData.WriteLine(Data);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                //写入完成,清除缓冲区并关闭Stream
                WriteData.Flush();
                WriteData.Close();
            }
        }


    }

飞/可爱朋 | 2014-9-26 09:11:07 | 显示全部楼层
以上代码全部自己手写
ibcadmin | 2014-9-26 16:58:14 | 显示全部楼层
飞/可爱朋 发表于 2014-9-26 01:11
以上代码全部自己手写

- -  一个文件流怎么写的那么麻烦
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2014-9-26 16:58:51 | 显示全部楼层
文件流写入错误信息到本地
http://www.ibcibc.com/forum.php? ... =1134&fromuid=1
(出处: C#论坛-C#教程,ASP.NET教程)
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ray-3d | 2014-12-3 13:46:20 | 显示全部楼层
good
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则