代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
读写日志文本文件
作者:
Dezai.CN
/ 发布于
2012/12/28
/
516
日志为文本文件 每列以制表符隔开 行以换行符隔开 本次示例简单实现如下相关功能: 1.正写日志文本 最新的日志放后面 2.倒写日志文本 最新的日志放前面 3.读日志文本内容显示在Label 4.读日志文本内容到DataTable 及 筛选后显示在GridView -------------------- (以下操作并没有考虑相关如文件不存在等异常) //1.正写日志 最新日志放最后面 protected void Button1_Click(object sender, EventArgs e) { string strFilePath = Server.MapPath("log/log_200807_1.txt"); System.IO.FileStream fs = new System.IO.FileStream(strFilePath, System.IO.FileMode.Append); System.IO.StreamWriter sw = new System.IO.StreamWriter(fs, System.Text.Encoding.Default); sw.WriteLine("'" + DateTime.Now.ToString() + "'\t'zhangsan'\t'Login.aspx'\t'登录A'"); sw.Close(); fs.Close(); } //2.倒写日志 最新日志放最前面 protected void Button2_Click(object sender, EventArgs e) { string strFilePath = Server.MapPath("log/log_200807_1.txt"); string strOldText = File.ReadAllText(strFilePath, System.Text.Encoding.Default); File.WriteAllText(strFilePath, "'" + DateTime.Now.ToString() + "'\t'zhangsan'\t'Login.aspx'\t'登录B'\r\n", System.Text.Encoding.Default); File.AppendAllText(strFilePath, strOldText, System.Text.Encoding.Default); } //3.读日志文本到Label protected void Button3_Click(object sender, EventArgs e) { string strFilePath = Server.MapPath("log/log_200807_1.txt"); FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default); string strLine = sr.ReadLine(); string str = ""; while (strLine != null) { str += strLine.ToString() + "<br/>"; strLine = sr.ReadLine(); } sr.Close(); fs.Close(); this.Label1.Text = str; } //4.读日志文本内容到DataTable及筛选后显示在GridView protected void Button4_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("日志时间"); dt.Columns.Add("操作人员"); dt.Columns.Add("日志页面"); dt.Columns.Add("日志内容"); string strFilePath = Server.MapPath("log/log_200807_1.txt"); FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default); string strLine = sr.ReadLine(); while (strLine != null) { string[] strArray = new string[4]; strArray = strLine.Split('\t'); DataRow dr = dt.NewRow(); dr[0] = strArray[0]; dr[1] = strArray[1]; dr[2] = strArray[2]; dr[3] = strArray[3]; dt.Rows.Add(dr); strLine = sr.ReadLine(); } sr.Close(); fs.Close(); //筛选 DataView dv = dt.DefaultView; dv.RowFilter = " 日志内容 Like '%A%' and 日志时间 >= '2008-7-8 14:12:50' "; //this.GridView1.DataSource = dt; this.GridView1.DataSource = dv; this.GridView1.DataBind(); } //取得当前所应操作的日志文件的路径 private string GetLogFilePath() { string strFilePath = ""; string strYearMonth = DateTime.Now.ToString("yyyyMM"); string strLogDirPath = Server.MapPath("log"); //判断当前月份是否已有日志文件 string[] strFilesArray = Directory.GetFiles(strLogDirPath, "log_" + strYearMonth + "_*.txt"); if (strFilesArray.Length == 0) { strFilePath = Server.MapPath("log/log_" + strYearMonth + "_1.txt"); //之前没有本年月的日志文件 需要新建 using (File.Create(strFilePath)) { } } else { int intOrderID = 1; for (int i = 0; i < strFilesArray.Length; i++) { string strA = strFilesArray[i].Trim(); strA = strA.Substring(strA.LastIndexOf("_")+1); strA = strA.Replace(".txt", ""); int intA = Convert.ToInt32(strA); if (intA > intOrderID) intOrderID = intA; } strFilePath = Server.MapPath("log/log_" + strYearMonth + "_" + intOrderID.ToString() + ".txt"); this.Label1.Text = strFilePath; //之前有 需要判断最后一个是否超容 FileInfo fileInfo = new FileInfo(strFilePath); if (fileInfo.Length >= 1024) { //超容了 新建之 int intCount = intOrderID + 1; strFilePath = Server.MapPath("log/log_" + strYearMonth + "_" + intCount.ToString() + ".txt"); using (File.Create(strFilePath)) { } } } return strFilePath ; } 讀寫ini文件 [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key,string val,string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key,string def, StringBuilder retVal,int size,string filePath); public void IniWriteValue(string Section,string Key,string Value,string filePath) { WritePrivateProfileString(Section,Key,Value,filePath); public string IniReadValue(string Section,string Key,string filePath) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section,Key,"",temp, 255, filePath); return temp.ToString(); } } 获取指定文件夹的大小 public long countsize( System.IO.DirectoryInfo dir) { long size=0; FileInfo[] files=dir.GetFiles(); foreach(System.IO.FileInfo info in files) { size+=info.Length; } DirectoryInfo[] dirs=dir.GetDirectories(); foreach(DirectoryInfo dirinfo in dirs) { size+=countsize(dirinfo); } return size; } 讀取資源檔: ResourceManager _textResManager = new ResourceManager("testproject.MultiLanguage_Eng", Assembly.GetExecutingAssembly()); string resString = _textResManager.GetString("keyname");
试试其它关键字
日志文本文件
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3