StreamReader和寻求

你可以使用streamreader来读取普通的文本文件,然后在保存当前位置之后在读取过程中关闭流读取器,然后再次打开streamreader并开始读取该poision吗? 如果不是我可以使用什么来完成相同的情况而不锁定文件? 像这样的东西: var fs = File.Open(@”C:\testfile.txt”, FileMode.Open, FileAccess.Read); var sr = new StreamReader(fs); Debug.WriteLine(sr.ReadLine());//Prints:firstline var pos = fs.Position; while (!sr.EndOfStream) { Debug.WriteLine(sr.ReadLine()); } fs.Seek(pos, SeekOrigin.Begin); Debug.WriteLine(sr.ReadLine());//Prints Nothing, i expect it to print SecondLine. @lasseespeholt 这是我试过的代码 var position = -1; StreamReaderSE sr = new StreamReaderSE(@”c:\testfile.txt”); Debug.WriteLine(sr.ReadLine()); position = sr.BytesRead; Debug.WriteLine(sr.ReadLine()); Debug.WriteLine(sr.ReadLine()); Debug.WriteLine(sr.ReadLine()); Debug.WriteLine(sr.ReadLine()); Debug.WriteLine(“Wait”); sr.BaseStream.Seek(position, […]

从剪贴板复制到剪贴板会丢失图像透明度

我一直在尝试将透明的PNG图像复制到剪贴板并保留其透明度,以将其粘贴到支持它的特定程序中。 我已经尝试了很多解决方案,但背景总是以这种或那种方式变灰。 所以我尝试使用Chrome复制相同的图像并将其粘贴到程序中并且它有效。 它保持了透明度。 然后我尝试从剪贴板中获取我使用Chrome复制的图像并再次设置图像,期望透明度仍然存在 – 但是,即使我刚从剪贴板中取出图像并设置它,也不会保留透明度再次。 var img = Clipboard.GetImage(); // copied using Chrome and transparency is preserved Clipboard.SetImage(img); // transparency lost 即使我使用System.Windows.Forms.Clipboard或尝试获取并设置DataObject而不是Image,也会出现同样的问题。

在C#中打印现有的PDF(或其他文件)

从我正在构建的应用程序中,我需要打印现有的PDF(由另一个应用程序创建)。 如何在C#中执行此操作并提供一种机制,以便用户可以选择其他打印机或其他属性。 我看过PrintDialog但不确定它试图打印什么文件,如果有的话,b / c输出总是一个空白页面。 也许我只是错过了一些东西。 我是否需要使用“iTextSharp”(如其他地方所建议的那样)? 这对我来说似乎很奇怪,因为我可以“将文件发送到打印机”我手边没有任何好的对话框来设置打印机等。我真的不想从头开始编写打印对话框但似乎我通过搜索找到的很多例子都是这样的。 任何建议,示例或示例代码都会很棒! 此外,如果PDF是问题,文件可以由另一个应用程序以差异格式创建,如位图或png,如果这使事情更容易。

Casting List – 协方差/逆变问题

给出以下类型: public interface IMyClass { } public class MyClass : IMyClass { } 我想知道如何将List转换为List ? 关于协方差/逆变主题,我并不完全清楚,但据我所知,由于这个原因,我不能仅仅清楚地列出清单。 我只能提出这个微不足道的解决方案; 缺乏优雅,浪费资源: … public List ConvertItems(List input) { var result = new List(input.Count); foreach (var item in input) { result.Add(item); } return result; } …. 你怎么能以更优雅/高效的方式解决它? ( 请注意,我需要.NET 2.0解决方案,但为了完整性,我也很高兴看到使用更新框架版本的更优雅的解决方案。 )

复制网络共享驱动器上的文件

我有一个网络共享驱动器(“\ serveur \ folder”),我想复制文件。 我可以使用特定用户(“user”/“pass”)在驱动器上写入。 如何使用C#访问共享驱动写入权限?

在C#中访问Windows中受密码保护的网络驱动器?

所以在C#中我试图访问网络上的文件,例如“@applications/myapp/test.txt”,如下所示: const string fileLocation = @”//applications/myapp/test.txt”; using (StreamReader fin = new StreamReader(FileLocation)) { while(!fin.EndOfStream()){ //Do some cool stuff with file } } 但是我收到以下错误: System.IO.IOException : Logon failure: unknown user name or bad password. 我认为它是因为我需要提供一些网络凭证,但我不知道如何让这些在这种情况下工作。 有没有人知道访问密码保护位置上的这些文件的最佳方式(或任何方式)? 提前致谢!!

如何在简单的Web项目中连接到.mdf(Microsoft SQL Server数据库文件)?

具体来说,在VS 2008中,我想通过右键单击自动生成的App_Data文件夹(.mdf“数据库”)来连接到您可以拥有的数据源。 看似简单,一旦你知道如何。

ASP.NET如何将文件流式传输给用户

最初我试图找出Response.Close和Response.End之间的区别,但是在进行了更多的谷歌搜索和研究之后,很明显我没有看到Byte []被发送回客户端的常见方式。 我将在下面留下代码示例,但我想知道行业标准是做什么的。 Byte[] myBytes = GetReportBytes(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AppendHeader(“content-length”, myBytes.Length.ToString()); HttpContext.Current.Response.AppendHeader(“content-Disposition”, “attachment;filename=” + this.ReportFileName + GetReportExtension()); HttpContext.Current.Response.ContentType = GetApplicationContentType(); HttpContext.Current.Response.BinaryWrite(myBytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); //CERT FIX //HttpContext.Current.Response.End();

C#在数组中查找最接近的值

int[] array = new int[5]{5,7,8,15,20}; int TargetNumber = 13; 对于目标号码,我想找到数组中最接近的数字。 例如,当目标数为13时,上面数组中与它最接近的数字是15.如何在C#中以编程方式完成?

在c#中将多个参数化变量添加到数据库

我想在这里做一些simulair: 如何在不重复声明的“INSERT INTO dbo.Blah”部分的情况下插入多行? 除了在一个查询中执行此操作(快于几十个)之外,我还想在输入来自Web时进行参数化。 目前我有 foreach(string data in Scraper){ SqlConnection conn = new SqlConnection(WebConfigurationManager.AppSettings[“ConnectionInfo”].ToString()); string query = “INSERT INTO DATABASE(‘web’,@data)”; SqlCommand sqlCommand= new SqlCommand(query, conn); sqlCommand.Parameters.AddWithValue(“@data”, data); Command.executeNonQuery(); conn.close(); } 这有点笨拙(注意真实的例子有更多的colums但这会让事情更加混乱)。