草庐IT

BASE_FILE

全部标签

c# - .net framework 4.0 的 File.ReadLines(..) 方法中的错误

这段代码:IEnumerablelines=File.ReadLines("filepath");foreach(varlineinlines){Console.WriteLine(line);}foreach(varlineinlines){Console.WriteLine(line);}如果执行第二个foreach,则抛出ObjectDisposedException:{"CannotreadfromaclosedTextReader."}。从File.ReadLines(..)返回的迭代器对象似乎不能被枚举多次。您必须通过调用File.ReadLines(..)获取新的迭代器对

c# - 限制 File.Copy 的速度

我们在C#中使用一个简单的File.Copy将我们的数据库备份移动到额外的位置。但是在某些服务器上,这会导致SQL服务器几乎停止工作。这些服务器的内存非常有限,因此它们经常将数据分页到硬盘。虽然我们应该购买更多内存,但这在很长一段时间内都不会发生:-/所以我想知道我是否可以以某种方式限制File.Copy操作的速度?(从而给SQL服务器一些访问硬盘的空间)我可以使用具有两个流的“老派”方法,通过缓冲区读取和写入,并且在读取之间只休眠5毫秒左右。但如果有这样的解决方案,我真的更喜欢一个更简洁的解决方案。 最佳答案 CopyFileEx

c# - File.AppendAllText 如果不存在则创建子目录?

如果我有一个路径C:\Test\Test1\a.txt而Test1不存在,我如何确保在附加到a.txt之前创建它? 最佳答案 怎么样:Directory.CreateDirectory(Path.GetDirectoryName(filename)); 关于c#-File.AppendAllText如果不存在则创建子目录?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/54048

c# - 如何检查 System.IO.File.Delete 是否成功删除文件

使用system.io.file类删除文件后:System.IO.File.Delete(openedPdfs.path);如果文件被成功删除,我需要运行一些代码。只要该方法不返回任何值,我就会在delete方法之后检查文件是否存在。如果它仍然存在,我认为操作失败。问题是,删除方法工作正常,但要删除文件需要几秒钟。Exist函数返回true,因为当时它正在检查文件是否存在。我如何确定System.IO.File.Delete(openedPdfs.path);是否成功完成?代码:FileInfofile=newFileInfo(openedPdfs.path);System.IO.Fi

c# - 新的 .csproj 格式 - 如何将整个目录指定为子目录的 "linked file"?

有了新的.csproj格式(以及旧格式),可以将文件添加为项目文件夹外部的链接:也可以使用glob模式来包含多个文件:但是如何将两者结合起来呢?我尝试了什么前两个只创建一个链接文件(名称分别为*.cs和*)。第三个简单地出错了。有没有办法将globbing与链接文件结合到目标项目中的特定位置?如果不是,我如何在不知道有多少文件或它们的名称是什么的情况下链接目录中的所有文件? 最佳答案 虽然以前在使用glob扩展时使用%(RecursiveDir)元数据是可能的(Link="Resources\%(RecursiveDir)%(Fil

c# - 编码数字,z-base-32 的 C# 实现或其他?

我需要对一个整数进行编码/解码,该整数最长为9位,但通常为7位。我想让交流/内存变得更容易-它将通过电话交流、复制和粘贴、从卡片/内存/标签中键入、在标签上手写并且通常被滥用!我希望使用base32减少位数(同时添加校验和)方案。我最赞成z-base-32(在RFC4648实现上)由于一些设计目标(例如手写)和字母表的选择(小写,排列以支持更容易读、写、说和记住的字符)。但是,我找不到C#实现,我担心从现有的Python实现中移植。有人有C#实现吗?或者,有没有人有一组测试用例(除了规范中的示例)我可以用来验证端口?我乐于接受有关替代编码方案的建议。 最佳答

c# - .NET 2.0 : File. AppendAllText(...) - 线程安全实现

作为无聊的好奇心练习,考虑以下简单的日志记录类:internalstaticclassLogging{privatestaticobjectthreadlock;staticLogging(){threadlock=newobject();}internalstaticvoidWriteLog(stringmessage){try{lock(threadlock){File.AppendAllText(@"C:\logfile.log",message);}}catch{...handleloggingerrors...}}}File.AppendAllText(...)周围是否需要锁

c# - 电子邮件删除附件后,错误 "The process cannot access the file because it is being used by another process."

我正在做一个电子邮件表单。电子邮件有附件,并在附加文件后发送电子邮件。接下来需要从服务器删除文件。当我试图获取文件时,它给了我主题错误。我什至在删除文件之前调用了GC.Collect(),但错误仍然存​​在。我删除文件的代码是:privatevoidDeleteFiles(DataTabledt){GC.Collect();String[]sAttachments=newString[dt.Rows.Count];try{sAttachments=newString[dt.Rows.Count];for(Int32J=0;J要将文件附加到电子邮件,我的代码是:oMess.Subject

C# 方法类似于 Base64String,但只有字母数字(没有加号或斜线)

是否有任何C#方法类似于Convert.ToBase64String但除了字母数字输出之外不生成任何内容?谢谢! 最佳答案 答案现在有点过时了。为了future搜索者的利益:现在在C#中处理此问题的最佳方法是:byte[]b;//fillyourbytearraysomehowstrings=System.Web.HttpServerUtility.UrlTokenEncode(b);这将返回一个URL安全的Base64编码字符串(这是您在问题的评论中所说的真正追求的内容)。然后你可以再次解码它,你猜对了:byte[]b=Syste

c# - 将 base64Binary 转换为 pdf

我有base64Binary的原始数据。stringbase64BinaryStr="J9JbWFnZ......"如何制作pdf文件?我知道它需要一些转换。请帮助我。 最佳答案 第1步是将base64字符串转换为字节数组:byte[]bytes=Convert.FromBase64String(base64BinaryStr);第2步是将字节数组保存到磁盘:System.IO.FileStreamstream=newFileStream(@"C:\file.pdf",FileMode.CreateNew);System.IO.Bi