Skip to content

日志文件

filePath 带有/结尾的写入在这个文件夹下,按照日期为文件名。

文本内容再次写入自动换行处理

public static class IOFileHelper
{

    /// <summary>
    /// 创建文件或者附加内容
    /// </summary>
    /// <param name="filePath">文件路径</param>
    /// <param name="Data">要写入的文本</param> 
    public static async Task<bool> Write(string filePath = "", string Data = "")
    {
        filePath = filePath.Contains("txt")
            ? filePath
            : "logs/" + filePath + DateTime.Now.ToString("yyyyMMdd") + ".log";
        var Encode = "UTF-8";
        Data = DateTime.Now + "  :" + Data + "\n";
        try
        {
            //获取文件对象
            var file = new FileInfo(filePath);
            //判断文件夹是否创建
            if (!file.Directory.Exists) file.Directory.Create();
            //判断文件是否存在
            //或者判断文件属性是否只读,是只读的话将只读属性去掉
            if (!file.Exists)
                using (file.Create())
                {
                }
            else if (file.Attributes.ToString().IndexOf("ReadOnly") != -1) file.IsReadOnly = false;

            //将内容覆盖或者追加到文件的最后
            using (var writer = new StreamWriter(file.FullName, true, Encoding.GetEncoding(Encode)))
            {
                writer.Write(Data);
                writer.Flush();
            }

            return true;
        }
        catch (Exception ex)
        {
            Console.Write(ex.Message);
            return false;
        }
    }
}