草庐IT

读取xls列

全部标签

c# - 锁定文件以进行写入/删除,同时允许任何进程读取

我正在用C#(.NET)开发应用程序,但在处理文件锁定时遇到了问题。我的主应用程序(A)需要对特定文件的读/写权限。一个单独的应用程序(B)需要对同一文件的读取权限。我需要防止用户在我的应用程序(A)运行时编辑或删除文件。应用程序(A)是长期运行的。在(A)运行时不得删除该文件,即使它没有被主动读取或写入也是如此。我完全控制了(A)和(B)的源代码,因此我可以修改其中任何一个。如何在应用程序(A)运行时阻止用户修改/删除文件,同时允许应用程序(A)读/写,应用程序(B)读? 最佳答案 使用FileShare.Read只允许从其他应用

c# - 使用包含另一个对象数组的对象的反射读取属性

如何在C#中使用反射读取包含数组类型元素的对象的属性。如果我有一个名为GetMyProperties的方法,并且我确定该对象是自定义类型,那么我该如何读取数组的属性和其中的值。IsCustomType是确定类型是否为自定义类型的方法。publicvoidGetMyProperties(objectobj){foreach(PropertyInfopinfoinobj.GetType().GetProperties()){if(!Helper.IsCustomType(pinfo.PropertyType)){strings=pinfo.GetValue(obj,null).ToStri

c# - 在远程机器上读取事件日志的最快方法是什么?

我正在开发一个从远程机器读取事件日志(应用程序)的应用程序。我在.net中使用EventLog类,然后迭代日志条目,但这非常慢。在某些情况下,某些机器有40000多个日志条目,并且需要数小时才能遍历这些条目。完成这项任务的最佳方法是什么?.net中是否有任何其他更快或任何其他技术的类? 最佳答案 伙计,我感受到你的痛苦。我们在我们的应用程序中遇到了完全相同的问题。您的解决方案有一个分支,具体取决于您正在运行的服务器版本以及您的“目标”机器正在运行的服务器版本。如果您同时使用Vista或WindowsServer2008,那么您很幸运

c# - 在 .net 中读取大型 XML 文档

我需要使用.net文件读取大型xml,这些文件的大小很容易达到几GB。我尝试使用XDocument,但当我尝试加载文档时它只会抛出System.OutOfMemoryException。读取大尺寸XML文件的最高效方法是什么? 最佳答案 您基本上必须在此处使用“拉”模型-XmlReader和friend。这将允许您流式传输文档,而不是一次将其全部加载到内存中。请注意,如果您知道自己处于“足够小”元素的开头,则可以创建一个XElementfromanXmlReader,使用LINQtoXML的荣耀处理它,然后转到下一个元素。

c# - 读取包含 unicode 字符的文件

我有一个asp.netc#页面,我正在尝试读取一个具有以下字符的文件,并将其转换为'.(从斜撇号到撇号)。FileInfofileinfo=newFileInfo(FileLocation);stringcontent=File.ReadAllText(fileinfo.FullName);//stripoutbadcharacterscontent=content.Replace("’","'");这不起作用,它会将倾斜的撇号更改为?标记。 最佳答案 我怀疑问题不在于替换,而在于读取文件本身。当我尝试这种nieve方式(使用Wor

c# - 在 .Net 2.0 中读取 PNG 图像文件

我在.Net2.0中使用C#,我想读入PNG图像文件并检查具有非透明像素的第一行和第一列。我应该使用什么程序集和/或类? 最佳答案 Bitmap来自System.Drawing.dll程序集的类:Bitmapbitmap=newBitmap(@"C:\image.png");Colorclr=bitmap.GetPixel(0,0); 关于c#-在.Net2.0中读取PNG图像文件,我们在StackOverflow上找到一个类似的问题: https://sta

c# - ASP.NET 如何在 Web API 中读取多部分表单数据?

我像这样将多部分表单数据发送到我的WebAPI:stringexample="mystring";HttpContentstringContent=newStringContent(example);HttpContentfileStreamContent=newStreamContent(stream);using(varclient=newHttpClient()){using(varcontent=newMultipartFormDataContent()){content.Add(stringContent,"example","example");content.Add(fi

C# Begin/EndReceive - 如何读取大数据?

当以1024字节的block读取数据时,我如何继续从接收大于1024字节的消息的套接字中读取数据,直到没有数据为止?我是否应该只使用BeginReceive只读取数据包的长度前缀,然后一旦检索到,使用Receive()(在异步线程中)读取数据包的其余部分?还是有别的办法?编辑:我认为JonSkeet的链接有解决方案,但该代码有一点速度障碍。我使用的代码是:publicclassStateObject{publicSocketworkSocket=null;publicconstintBUFFER_SIZE=1024;publicbyte[]buffer=newbyte[BUFFER_S

c# - 如何读取匿名类型的属性?

我有一个返回值的方法returnnewSystem.Web.Mvc.JsonResult(){Data=new{Status="OK",}}我需要编写一个单元测试来验证jsonResult.Data.status="OK"。如何读取状态属性?更新:我尝试了[assembly:InternalsVisibleTo("TestingAssemblyName")],但这没有帮助。我不断收到错误消息{"'System.Web.Mvc.JsonResult'不包含'Status'的定义"}此外,我认为我宁愿不修改我正在测试的代码。所以我采纳了Jon的建议并使用了反射。vartype=jsonRe

c# - 让 DbDataReader 从结果集的开头重新开始读取

如何让dr.Read();在满足条件的情况下重新从头开始阅读?类似于:SqlDataReaderdr=command.ExecuteReader();for(inti=0;dr.Read();i++){if(condition){//letdr.Read()startreadingfromthebeginning}} 最佳答案 你不能。*DataReader类是仅向前迭代器。相反,您可以将结果存储在List中(或DataTable) 关于c#-让DbDataReader从结果集的开头重新