由于之前的工作中用到了记录日志,就像提笔忘字一样,我怎么想都想不出来,现在记一下
先建一个类Log
//记录日志信息 public class Log { public static void LogMsg(int type,string name,string msg) { //日志存放的路径 string path = @"d:\log\"; //文件名以时间命名 string file = DateTime.Now.ToShortDateString ()+".txt"; FileStream fs = null; //判断文件是否存在 if(!File.Exists(file)){ fs = File.Create(path+file); }else{ //文件存在,FileMode.Append直接追加到文件的下一行,FileMode.Create则是每次都把原来的覆盖掉,文件中只保存一条文档,如果不存在则创建 fs = File.Open(path+file,FileMode.Append); } StreamWriter sw = new StreamWriter(fs); //using限制着文件流的开关 using(sw) { string content = ""; if(type==0) { content = "["+name+"] -- "+DateTime.Now.ToString()+" -- 结果:"+msg; } else { content = "["+name+"] -- "+DateTime.Now.ToString()+" -- 结果:失败,原因:"+msg; } //按行写入 sw.WriteLine(content); } } }
后台调用的时候
Log.LogMsg(type,name,msg);
读取文档中的日志
string path = "@/log/"; //定义上传路径 StreamReader smRead = new StreamReader(path, System.Text.Encoding.Default); string[] strs =smRead.ReadAllLines();// 按行读取
接着是复制的方法
public static void Main() { FileStream fr = new FileStream(@"g:\变节-潜罪犯.mkv",FileMode.Open); FileStream fw = null; //判断文件是否存在 if(!File.Exists(@"d:\变节-潜罪犯.mkv")) { fw = new FileStream(@"d:\变节-潜罪犯.mkv",FileMode.Create); } else { Console.WriteLine("文件已经存在,是否覆盖?Y/N"); if(Console.ReadLine().ToLower()=="y") { fw = new FileStream(@"d:\变节-潜罪犯.mkv",FileMode.Create); } } byte[] buffer = new byte[1024*4]; //获得总长度 long size = fr.Length; int readsize = 0; using(fr) { using(fw) { int i = 0; while((i=fr.Read(buffer,0,buffer.Length))!=0) { //获得已经读取的字节数 readsize+=i; //计算百分比 double d = (double)readsize/size *100 ; Console.WriteLine(d.ToString("0.0")+"%"); fw.Write(buffer,0,i); } } } }
原文:http://www.cnblogs.com/llxy/p/3891568.html