Tag: 文件

删除文件的最后10个字符

我想删除文件的最后10个字符。 说一个字符串”hello i am ac# learner”是文件里面的数据。 我只是希望那个文件是”hello i am a ” 。 应该在文件中删除文件的最后10个字符,即字符串”c# learner” 。 解: 将整个文件读入一个字符串并删除最后10个字符并写回字符串(但是当文件大小太大时,这种方法会失败,说一些200 MB文件,当我们只需要最后一个文件时甚至不需要读取整个文件10个字符。所以我不能尝试这种方法) 我想在写模式下打开文件并将光标位置设置为类似于file.seek(-10,SeekOrigin.End)并写入空字节file.writebye((byte)((char)’ ‘)); 但它似乎没有写任何文件。 谁能告诉我更好的方法来接近它而不是将整个文件读入字符串。 注意我使用c#来执行此操作

在大文本文件中搜索字符串的最快方法

为了查找相当大的文本文件中的字符串列表(最多1GB文本文件),可以实现的最快技术/算法是什么。 对于初学者来说,我正在使用C#并且能够实现逻辑(简单地通过匹配文件和字符串列表,每次都是字符串。这意味着文件将被读取n个字符串以匹配“次”)但是因为我正在处理很多文件,所以它会永远运行它们并获得匹配。即使它不是C#,我也会接受任何建议。 为了详细说明,我有一个包含许多数字的文本文件(A),我有很多大文件(B)。 我试图获取(A)中的每个元素,并逐行查看(B)中是否存在匹配。 如果匹配,我将整行写入文本文件。 我这样做的方式非常传统,单个文件需要花费大量时间,而我有数百个,大小高达1GB 感谢你的时间

删除所有默认文件权限

我有一个C#网络应用程序,它会提示管理员提供网络代理身份validation信息。 我问用户是否要保存这些信息,如果他们选择是,我会在用户的唯一本地文件中加密。 我想删除除创建它的用户以外的所有文件权限,但是除了能够删除该文件的所有其他用户之外。 现在,我在下面找到了MS文章,但如果我不知道首先在文件上设置的默认用户,它就无济于事。 是否删除了所有文件权限? 然后,我可以添加我想要为当前用户的完全访问权限设置的个人权限以及“所有用户”或“经过身份validation的用户”的删除权限,这些权限根据Windows的版本而有所不同。 http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx

C#列出当前打开的文件和程序

有没有办法可以获得所有打开的应用程序列表和所有打开文件的列表? 对于文件我只需要打开的文件(文档等)而不是OS的开放系统文件。 应用程序也是如此(仅限浏览器,文档处理器等)。 我已经尝试过像EnumWindows这样的Windows API中的各种function,但我无法得到我想要的function。 我最终目标的一个例子是拥有这样的列表: 应用 Microsoft Word,记事本,Mozilla Firefox 档 foo.txt,foo.mp3,foo.doc 我需要的只是名字,我不需要句柄等(即使我确定我必须使用它们来得到我想要的)

如何在SaveFileDialog C#中避免文件名validation

是否可以避免SaveFileDialog中的fileNamevalidation? var saveFileDialog = new SaveFileDialog { Filter = “Job package (*.job)|*.job”, CheckPathExists = false, ValidateNames = false }; var result = saveFileDialog.ShowDialog(); if (result.Value) { ….my own validation…. } ValidateNames属性不起作用。 无论如何,当我输入一个带有无效字符的名称时,对话框会显示它自己的弹出窗口“文件名无效”。 我可以避免吗? 怎么样?

C#,最快(最好?)识别目录数组中的重复文件的方法

我想递归几个目录,并在n个目录之间找到重复的文件。 我在这方面的下意识是有一个全局哈希表或一些其他数据结构来保存我找到的每个文件; 然后检查每个后续文件以确定它是否在“主”文件列表中。 显然,我不认为这会非常有效,而且“必须有更好的方法!” 我的大脑里一直响个不停。 任何关于更好地处理这种情况的建议都将受到赞赏。

C#,从二进制文件中读取结构

我想从二进制文件中读取结构。 在C ++中,我会这样做: stream.read((char*)&someStruct, sizeof(someStruct)); 在C#中是否有类似的方式? BinaryReader仅适用于内置类型。 在.NET 4中有一个MemoryMappedViewAccessor。 它提供了类似Read ,这似乎是我想要的,除了我手动必须跟踪我想要读取的文件中的位置。 有没有更好的办法?

删除空文件夹并重新创建后,System.IO.DirectoryNotFoundException

我想复制一个文件夹,我想先删除目标文件夹。 所以我删除目标文件夹然后重新创建它然后复制文件。 问题是我在尝试复制文件时遇到An unhandled exception of type ‘System.IO.DirectoryNotFoundException’ occurred in mscorlib.dll 。 这是代码 static public void CopyFolder(string sourceFolder, string destFolder) { if (Directory.Exists(destFolder)) // check if folde exist { Directory.Delete(destFolder, true); // delete folder } Directory.CreateDirectory(destFolder); // create folder string[] files = Directory.GetFiles(sourceFolder); foreach (string file in files) { string name = Path.GetFileName(file); string dest […]

如何读取C#字符串字典并将其写入文件?

我有一个Dictionary对象,我想写入磁盘并能够从磁盘读取它。 理想情况下,我会避免任何第三方库。 使用常规C#4有一种简单的方法吗? 答案接受了。 摘要: 选项1 – 使用JavaScriptSerializer 优点:不需要第三方图书馆。 此外,使用更现代的格式,即JSON 缺点:难以阅读 – 没有形成。 此外,确实需要引用不太常用的System.Web.Extension程序集,即使应用程序与Web无关。 解: 写: File.WriteAllText(“SomeFile.Txt”, new JavaScriptSerializer().Serialize(dictionary)); 读: var dictionary = new JavaScriptSerializer() .Deserialize<Dictionary>(File.ReadAllText(“SomeFile.txt”)); 选项2 – 使用Linq到Xml 优点:不需要第三方图书馆。 通常不需要添加其他引用。 易读。 缺点: XML不像更现代的JSON那样优先。 写: new XElement(“root”, d.Select(kv => new XElement(kv.Key, kv.Value))) .Save(filename, SaveOptions.OmitDuplicateNamespaces); 读: var dictionary = XElement.Parse(File.ReadAllText(filename)) .Elements() .ToDictionary(k => k.Name.ToString(), v => […]

MVC3将多个pdfs作为zip文件返回

我有一个视图,它返回一个包含多个页面的pdf(使用iTextSharp),但现在我必须更改它,以便每个页面都是一个单独的pdf(带有它自己的唯一标题)并返回一个zip文件。 我的原始代码如下所示: public FileStreamResult DownloadPDF() { MemoryStream workStream = new MemoryStream(); Document document = new Document(); PdfWriter.GetInstance(document, workStream).CloseStream = false; document.Open(); // Populate pdf items document.Close(); byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; FileStreamResult fileResult = new FileStreamResult(workStream, “application/pdf”); fileResult.FileDownloadName = “fileName”; return fileResult; } 使用gzip压缩文件看起来很简单,但我不知道如何gzip多个文件并将其作为一个zip文件返回。 或者我应该使用gzip以外的东西,比如dotnetzip或sharpzip? 提前致谢!