C# 文件写入

本文介绍了一个日志管理系统的设计与实现,该系统能够根据不同的数字标记选择性地将日志内容写入到两个不同的文件中,同时确保日志按日期归档,并在每天开始时创建新的日志文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/// <summary>
        /// 写入数据
        /// </summary>
        /// <param name="logNumber">传入数字标记写入的是文件一还是文件二,根据传入数字的不同进行写入</param>
        /// <param name="log">日志内容</param>
        public static void write(int logNumber, string log)
        {
            //判断是否是当天,如果是当天继续添加文件,如果不是当天日志重新进行创建
            //创建时需要指定创建文件夹
            //每条日志前要加上当天时间

            //获取文件名称
            string fileName = DateTime.Now.ToString("yyyy-MM-dd") + " log" + logNumber.ToString() + ".txt";

            //打开或创建文件
            FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite);
            //创建字节数组
            byte[] data = null;

            //通过读取系统时间来获取当天日期
            string time = DateTime.Now.ToString("yyyy-MM-dd");
            
            //判断当天是否存在文件,并且判断文件是否存在内容
            if (FileCreateTime(fileName).Equals(time) && fileStream.Length == 0)
            {
                data = System.Text.Encoding.Default.GetBytes(File.GetCreationTime(fileName)+" " + log);
                fileStream.Write(data, 0, data.Length);

                fileStream.Flush();
                fileStream.Close();
            } else {
                data = System.Text.Encoding.Default.GetBytes("\t\n" + File.GetCreationTime(fileName) + " " + log);
                fileStream.Position = fileStream.Length;
                fileStream.Write(data, 0,data.Length);
            }
            
        }
        
        /// <summary>
        /// 获取文件创建日期
        /// </summary>
        /// <returns></returns>
        private static string FileCreateTime(string fileName)
        {
            string year = File.GetCreationTime(fileName).Year.ToString();
            string month = File.GetCreationTime(fileName).Month.ToString();
            string day = File.GetCreationTime(fileName).Day.ToString();
            if(int.Parse(month) < 10) {
                month = "0" + month;
            }
            if(int.Parse(day) < 10) {
                day = "0" + day;
            }
            return year+"-"+month+"-"+day;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值