mysql 构造 linq语句_[转]查看LINQ生成SQL语句的几种方法

记录LINQ生成的SQL语句是常用的调试方式,而且能根据需要来优化LINQ生成的SQL语句,更能了深入的了解LINQ.

DataContext的Log属性来将LINQ to SQL生成的SQL语句格式化.

一.控制台程序(Console)dataContext.Log = Console.Out;二.利用GetCommand方法

dataContext.GetCommand(query).CommandText;

三.使用LINQPad (官方网站)

LINQPad支持C# 3.0 和 Framework 3.5的全部功能:LINQ to SQL

LINQ to Objects

LINQ to XML

LINQpad_thumb.gif

四.LINQ to SQL Debug Visualizer

ScottGu的LINQ to SQL Debug Visualizer可以在Debug过程中查看SQL语句.

安装方法

1. 关闭 VS2008。

2. 将压缩包中的 SqlServerQueryVisualizer.dll 拷贝到 \Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\Visualizers。

3. 重启 VS2008 即可。

五.DebuggerWriter工具类

由于Console.Out方法在ASP.NET程序不起作用.

Kris Vandermotten已经创建好了一个这个工具类, 你只要使用这样的语法:

MyDataContext db = new MyDataContext();db.Log = new DebuggerWriter();

asp.net可以选择将Log信息直接发送到Debug的输出窗口.

源码:

731655954c7be9d8835ece551b5385f8.pngusingSystem;

731655954c7be9d8835ece551b5385f8.pngusingSystem.Diagnostics;

731655954c7be9d8835ece551b5385f8.pngusingSystem.Globalization;

731655954c7be9d8835ece551b5385f8.pngusingSystem.IO;

731655954c7be9d8835ece551b5385f8.pngusingSystem.Text;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngnamespaceVandermotten.Diagnostics

24a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///Implements afor writing information to the debugger log.

1408c5260b2f05e450dee929db9be5f7.png///5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicclassDebuggerWriter : TextWriter

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngprivateboolisOpen;

1408c5260b2f05e450dee929db9be5f7.pngprivatestaticUnicodeEncoding encoding;

1408c5260b2f05e450dee929db9be5f7.pngprivatereadonlyintlevel;

1408c5260b2f05e450dee929db9be5f7.pngprivatereadonlystringcategory;

1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///Initializes a new instance of theclass.

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicDebuggerWriter()

1408c5260b2f05e450dee929db9be5f7.png :this(0, Debugger.DefaultCategory)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///Initializes a new instance of theclass with the specified level and category.

1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///A description of the importance of the messages.5bcb1807ee3e00d2b3c225f0b3f5c751.png///The category of the messages.

1408c5260b2f05e450dee929db9be5f7.pngpublicDebuggerWriter(intlevel,stringcategory)

1408c5260b2f05e450dee929db9be5f7.png :this(level, category, CultureInfo.CurrentCulture)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///Initializes a new instance of theclass with the specified level, category and format provider.

1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///A description of the importance of the messages.1408c5260b2f05e450dee929db9be5f7.png///The category of the messages.5bcb1807ee3e00d2b3c225f0b3f5c751.png///Anobject that controls formatting.

1408c5260b2f05e450dee929db9be5f7.pngpublicDebuggerWriter(intlevel,stringcategory, IFormatProvider formatProvider)

1408c5260b2f05e450dee929db9be5f7.png :base(formatProvider)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngthis.level=level;

1408c5260b2f05e450dee929db9be5f7.pngthis.category=category;

1408c5260b2f05e450dee929db9be5f7.pngthis.isOpen=true;

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngprotectedoverridevoidDispose(booldisposing)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png isOpen=false;

1408c5260b2f05e450dee929db9be5f7.pngbase.Dispose(disposing);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(charvalue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(!isOpen)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngthrownewObjectDisposedException(null);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png Debugger.Log(level, category, value.ToString());

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(stringvalue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(!isOpen)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngthrownewObjectDisposedException(null);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.pngif(value!=null)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png Debugger.Log(level, category, value);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(char[] buffer,intindex,intcount)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(!isOpen)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngthrownewObjectDisposedException(null);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.pngif(buffer==null||index<0||count<0||buffer.Length-index

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngbase.Write(buffer, index, count);//delegate throw exception to base class5bcb1807ee3e00d2b3c225f0b3f5c751.png}1408c5260b2f05e450dee929db9be5f7.png Debugger.Log(level, category,newstring(buffer, index, count));

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverrideEncoding Encoding

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngget715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(encoding==null)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png encoding=newUnicodeEncoding(false,false);

5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.pngreturnencoding;

5bcb1807ee3e00d2b3c225f0b3f5c751.png }5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicintLevel

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.pngget222530190136c9c4cfd237cc0d5cff99.png{returnlevel; }5bcb1807ee3e00d2b3c225f0b3f5c751.png }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicstringCategory

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.pngget222530190136c9c4cfd237cc0d5cff99.png{returncategory; }5bcb1807ee3e00d2b3c225f0b3f5c751.png }5bcb1807ee3e00d2b3c225f0b3f5c751.png }f466905a3bcb5dcef110eab799825254.png}731655954c7be9d8835ece551b5385f8.png

六.将LINQ to SQL生成的SQL语句写入日志文件

DataContext.Log是System.IO.TextWriter类型,所以你可以用以下的方法来做.

StreamWriter sw = new StreamWriter(

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "log.txt"));dBLinqDataContext.Log = sw;var query = dataContext.Customers.Single(c=>c.CustomerID.Contains("s"))

.Skip(0).Take(10).ToList();sw.Flush();sw.Close();

但以上方法有个缺点,就是需要在每个实现的方法中都写这么多代码.使用起来太不方便.参照dataContext.Log = Console.Out的表现形式

由是有了FileLog类.(当然,FileLog类除了此功能还有一些基本的记录日志的方法)

使用时直接dataContext.Log = Yaosansi.IO.FileLog.Out;即可. 默认会在桌面上生成一个名叫UnNameFile.txt的文件.

当然如果你不想使用默认的文件名和路径也可以使用dataContext.Log =new Yaosansi.IO.FileLog("FileName")的方式.

下面是FileLog类的源码:

731655954c7be9d8835ece551b5385f8.png//原文:http://www.yaosansi.com/post/1380.html731655954c7be9d8835ece551b5385f8.pngusingSystem;

731655954c7be9d8835ece551b5385f8.pngusingSystem.Collections.Generic;

731655954c7be9d8835ece551b5385f8.pngusingSystem.Text;

731655954c7be9d8835ece551b5385f8.pngusingSystem.IO;

731655954c7be9d8835ece551b5385f8.png

731655954c7be9d8835ece551b5385f8.pngnamespaceYaosansi.IO

24a924a57ba6b3f2b51fc9edb7ea4186.png

9310e85a14af99de4811ff4c77f1f911.png222530190136c9c4cfd237cc0d5cff99.png{

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///文件操作

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicclassFileLog : TextWriter

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

e083dfde5a91f50979fe8979b4012b9d.png

715f2d05503b99d41f3b6ba2cdccc84d.png构造函数#region构造函数1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png     

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///5bcb1807ee3e00d2b3c225f0b3f5c751.png///文件名[文件路径使用默认路径]

1408c5260b2f05e450dee929db9be5f7.pngpublicFileLog(stringfileName)

1408c5260b2f05e450dee929db9be5f7.png            :this(fileName,string.Empty,false)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///文件名1408c5260b2f05e450dee929db9be5f7.png///文件路径5bcb1807ee3e00d2b3c225f0b3f5c751.png///是否删除已经存在的文件

1408c5260b2f05e450dee929db9be5f7.pngpublicFileLog(stringfileName,stringfilePath,booldeleteExistingFile):this(fileName,filePath,long.MaxValue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(deleteExistingFile)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                DeleteFile();

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///1408c5260b2f05e450dee929db9be5f7.png///文件名1408c5260b2f05e450dee929db9be5f7.png///文件路径1408c5260b2f05e450dee929db9be5f7.png///文件大小[单位:bytes]超出此大小将自动删除文件(使用longong.MaxValue例外)5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicFileLog(stringfileName,stringfilePath,longfileSize)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(!string.IsNullOrEmpty(fileName))

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                FileName=fileName;

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.pngelse715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                FileName="UnNameFile.txt";

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.pngif(!string.IsNullOrEmpty(filePath))

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                FilePath=filePath;

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.pngelse715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                FilePath=Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.png            FileSize=fileSize;

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }5bcb1807ee3e00d2b3c225f0b3f5c751.png#endregion1408c5260b2f05e450dee929db9be5f7.png

e083dfde5a91f50979fe8979b4012b9d.png

715f2d05503b99d41f3b6ba2cdccc84d.png重写TextWriter#region重写TextWriter1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverrideEncoding Encoding

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngget715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngreturnnewUnicodeEncoding(false,false);

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(charvalue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png            WriteFile(value.ToString());

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(stringvalue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(value!=null)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                WriteFile(value);

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.pngpublicoverridevoidWrite(char[] buffer,intindex,intcount)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(buffer==null||index<0||count<0||buffer.Length-index

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngbase.Write(buffer, index, count);

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.png            WriteFile(newstring(buffer, index, count));

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

5bcb1807ee3e00d2b3c225f0b3f5c751.png#endregion1408c5260b2f05e450dee929db9be5f7.png

e083dfde5a91f50979fe8979b4012b9d.png

715f2d05503b99d41f3b6ba2cdccc84d.png属性#region属性715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///文件名

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.pngpublicstringFileName222530190136c9c4cfd237cc0d5cff99.png{set;get; }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///获取文件全名[包含路径]

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicstringFullFileName

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngget715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngreturnFilePath+"\\"+FileName;

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///定义文件大小

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.png715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.pngpubliclongFileSize222530190136c9c4cfd237cc0d5cff99.png{set;get; }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///文件路径;

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.png1408c5260b2f05e450dee929db9be5f7.pngpublicstringFilePath

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngset;

1408c5260b2f05e450dee929db9be5f7.pngget;

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///FileLog Factory

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicstaticFileLog Out

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngget715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngreturnnewFileLog("");

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

5bcb1807ee3e00d2b3c225f0b3f5c751.png#endregion1408c5260b2f05e450dee929db9be5f7.png

e083dfde5a91f50979fe8979b4012b9d.png

715f2d05503b99d41f3b6ba2cdccc84d.png方法#region方法715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///删除文件

1408c5260b2f05e450dee929db9be5f7.png///5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicboolDeleteFile()

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngboolsucceed=false;

1408c5260b2f05e450dee929db9be5f7.pngtry715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngif(File.Exists(FullFileName))

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                    File.Delete(FullFileName);

1408c5260b2f05e450dee929db9be5f7.png                    succeed=true;

5bcb1807ee3e00d2b3c225f0b3f5c751.png                }5bcb1807ee3e00d2b3c225f0b3f5c751.png            }715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.pngcatch222530190136c9c4cfd237cc0d5cff99.png{ }1408c5260b2f05e450dee929db9be5f7.pngreturnsucceed;

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///仅记录当前时间及分隔符

5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicvoidWirteTime()

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.pngstringmessage="\r\n-------------------------------------------------------\r\n"+1408c5260b2f05e450dee929db9be5f7.png"时间:"+DateTime.Now.ToString()+"\r\n"+1408c5260b2f05e450dee929db9be5f7.png"-------------------------------------------------------";

1408c5260b2f05e450dee929db9be5f7.png            WriteFile(message);

5bcb1807ee3e00d2b3c225f0b3f5c751.png        }1408c5260b2f05e450dee929db9be5f7.png

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png/**1408c5260b2f05e450dee929db9be5f7.png///写文件

1408c5260b2f05e450dee929db9be5f7.png///5bcb1807ee3e00d2b3c225f0b3f5c751.png///

1408c5260b2f05e450dee929db9be5f7.pngpublicvoidWriteFile(stringMessage)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png            StreamWriter sw=null;

1408c5260b2f05e450dee929db9be5f7.pngtry715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png//如果文件目录不存在,则创建1408c5260b2f05e450dee929db9be5f7.pngif(!Directory.Exists(FilePath))

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                    Directory.CreateDirectory(FilePath);

5bcb1807ee3e00d2b3c225f0b3f5c751.png                }1408c5260b2f05e450dee929db9be5f7.png//超过一定大小自动删除文件1408c5260b2f05e450dee929db9be5f7.pngif(FileSize!=long.MaxValue)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                    FileInfo finfo=newFileInfo(FullFileName);

1408c5260b2f05e450dee929db9be5f7.pngif(finfo.Exists&&finfo.Length>FileSize)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                        finfo.Delete();

5bcb1807ee3e00d2b3c225f0b3f5c751.png                    }5bcb1807ee3e00d2b3c225f0b3f5c751.png                }1408c5260b2f05e450dee929db9be5f7.pngif(!File.Exists(FullFileName))

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                    sw=File.CreateText(FullFileName);

5bcb1807ee3e00d2b3c225f0b3f5c751.png                }1408c5260b2f05e450dee929db9be5f7.pngelse715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                    sw=File.AppendText(FullFileName);

5bcb1807ee3e00d2b3c225f0b3f5c751.png                }1408c5260b2f05e450dee929db9be5f7.png                sw.WriteLine(Message);

1408c5260b2f05e450dee929db9be5f7.png                sw.Flush();

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.pngcatch(Exception ee)

715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                Console.WriteLine("文件没有打开,详细信息如下:"+ee.ToString());

1408c5260b2f05e450dee929db9be5f7.pngthrow(newException("文件没有打开,详细信息如下:"+ee.ToString()));

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }1408c5260b2f05e450dee929db9be5f7.pngfinally715f2d05503b99d41f3b6ba2cdccc84d.png

e083dfde5a91f50979fe8979b4012b9d.png222530190136c9c4cfd237cc0d5cff99.png{

1408c5260b2f05e450dee929db9be5f7.png                sw.Close();

1408c5260b2f05e450dee929db9be5f7.png                sw.Dispose();

5bcb1807ee3e00d2b3c225f0b3f5c751.png            }5bcb1807ee3e00d2b3c225f0b3f5c751.png        }5bcb1807ee3e00d2b3c225f0b3f5c751.png#endregion1408c5260b2f05e450dee929db9be5f7.png

1408c5260b2f05e450dee929db9be5f7.png

5bcb1807ee3e00d2b3c225f0b3f5c751.png    }f466905a3bcb5dcef110eab799825254.png}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值