Tag: 文件

如何写入隐藏文件?

我正在使用TextWriter尝试写入隐藏文件,并抛出exception。 我似乎无法弄清楚如何写入隐藏文件。 using (TextWriter tw = new StreamWriter(filename)) { tw.WriteLine(“foo”); tw.Close(); } 例外: Unhandled Exception: System.UnauthorizedAccessException: Access to the path ‘E:\*\media\Photos\2006-08\.picasa.ini’ is denied. 如何写入隐藏文件?

计算相对文件路径

我有2个文件: C:\Program Files\MyApp\images\image.png C:\Users\Steve\media.jpg 现在我想计算相对于文件1的文件2的文件路径(media.jpg): ..\..\..\Users\Steve\ .NET中是否有内置函数来执行此操作?

创建缩略图并缩小图像大小

我有非常大的图像(jpg),我想写一个csharp程序来循环文件,并将每个图像的大小减少75%。 我试过这个: Image thumbNail = image.GetThumbnailImage(800, 600, null, new IntPtr()); 但文件大小仍然很大。 反正有没有创建缩略图并且文件大小更小?

实现“打开包含文件夹”并突出显示文件

这可以是在与文件/文件夹一起使用的程序中具有的便利function。 使用以下方法实际打开包含文件夹很容易: System.Diagnostics.Process.Start( *path to folder* ); …但是如何在该父文件夹中实际选择目标文件? 如果我使用Process.Start方法,它实际上会尝试打开该文件。

创建文本文件并下载

我正在尝试写入内存中的文本文件,然后下载该文件而不将文件保存到硬盘。 我正在使用StringWriter来编写内容: StringWriter oStringWriter = new StringWriter(); oStringWriter.Write(“This is the content”); 我如何下载此文件? 编辑:这是答案的组合,给了我我的解决方案。 这里是: StringWriter oStringWriter = new StringWriter(); oStringWriter.WriteLine(“Line 1”); Response.ContentType = “text/plain”; Response.AddHeader(“content-disposition”, “attachment;filename=” + string.Format(“members-{0}.csv”,string.Format(“{0:ddMMyyyy}”,DateTime.Today))); Response.Clear(); using (StreamWriter writer = new StreamWriter(Response.OutputStream, Encoding.UTF8)) { writer.Write(oStringWriter.ToString()); } Response.End();

如何在C#winform应用程序中执行非缓存文件写入

我正在尝试确定最坏情况下的磁盘速度,所以我编写了以下函数。 static public decimal MBytesPerSec(string volume) { string filename = volume + “\\writetest.tmp”; if (System.IO.File.Exists(filename)) System.IO.File.Delete(filename); System.IO.StreamWriter file = new System.IO.StreamWriter(filename); char[] data = new char[64000]; Stopwatch watch = new Stopwatch(); watch.Start(); int i = 0; for (; i 2000) { break; } } watch.Stop(); file.Close(); System.IO.File.Delete(volume + “\\test.txt”); decimal mbytessec = (i * 64 […]

C#中的二进制补丁生成

有没有人知道或者知道C#中的二进制补丁生成算法实现? 基本上,比较两个文件(指定旧的和新的 ),并生成一个补丁文件,可用于升级旧文件以具有与新文件相同的内容。 实现必须相对较快,并使用大文件。 它应该表现出O(n)或O(logn)运行时。 我自己的算法往往是糟糕的(快速但产生巨大的补丁)或缓慢(产生小补丁但具有O(n ^ 2)运行时)。 任何建议或实施指针都会很好。 具体来说,该实现将用于使我们拥有一个主服务器的各种大型数据文件保持服务器同步。 当主服务器数据文件发生更改时,我们还需要更新多个场外服务器。 我所做的最天真的算法,仅适用于可以保存在内存中的文件,如下所示: 从旧文件中获取前四个字节,将其称为密钥 将这些字节添加到字典中,其中key – > position ,其中position是我抓住那4个字节的位置,0开始于 跳过这四个字节中的第一个,抓取另外4个(3个重叠,1个),并以相同的方式添加到字典中 对旧文件中的所有4字节块重复步骤1-3 从新文件的开头,抓取4个字节,并尝试在字典中查找它 如果找到,通过比较两个文件中的字节,找到最长匹配(如果有) 在旧文件中对该位置的引用进行编码,并跳过新文件中的匹配块 如果未找到,则从新文件中编码1个字节,然后跳过它 对新文件的其余部分重复步骤5-8 这有点像压缩,没有窗口,因此会占用大量内存。 然而,它是相当快的,并且产生非常小的补丁,只要我尝试使代码输出最小。 更节省内存的算法使用窗口,但会产生更大的补丁文件。 我在本文中跳过了上述算法的细微差别,但如果有必要,我可以发布更多详细信息。 但是,我觉得我需要一个完全不同的算法,因此改进上述算法可能不会让我足够远。 编辑#1 :以下是对上述算法的更详细描述。 首先,组合这两个文件,这样你就有了一个大文件。 记住两个文件之间的切点。 其次,这样做可以获取4个字节并将其位置添加到整个文件中的所有内容的字典步骤中。 第三, 从新文件开始的位置开始,尝试定位4字节的现有组合,并找到最长匹配。 确保我们只考虑旧文件中的位置,或者新文件中较早的位置 。 这确保了我们可以在补丁应用程序中重用旧文件和新文件中的材料。 编辑#2 : 上述算法的源代码 您可能会收到有关证书存在问题的警告。 我不知道如何解决这个问题,因此暂时接受证书。 源使用了我库中其余部分的许多其他类型,因此文件不是全部​​,但这就是算法实现。 @lomaxx,我试图为subversion中使用的算法找到一个很好的文档,叫做xdelta,但除非你已经知道算法是如何工作的,否则我发现的文件无法告诉我需要知道的内容。 或者也许我只是密集…… 🙂 我快速浏览了你所提供的网站上的算法,遗憾的是它无法使用。 二进制diff文件中的注释说: 找到一组最佳差异需要相对于输入大小的二次时间,因此它很快就会变得无法使用。 我的需求并不是最优的,所以我正在寻找更实用的解决方案。 谢谢你的回答,如果我需要它,他会为他的工具添加一个书签。 编辑#1 […]

安装软件程序如何提取文件?

我目前正在与安装程序一起工作,我想到的第一件事就是将.zip文件放在服务器上,然后让它下载并解压缩。 但是,我看到安装程序运行没有互联网连接(这对我来说不起作用),他们说“提取文件”,而不是下载。 有没有办法在安装程序中存储文件,我是否有像我目前这样的安装程序有什么问题?

C# – 添加,编辑和删除文件标签

我想在文件系统中添加和检索文件的标签。 您可以将Stackoverflow问题标记为相关主题,您可以在Windows文件系统中标记文件: 以下方法不允许我访问文件的标记,而只能访问其他文件属性。 string file = @”C:\Users\me\Desktop\MyFile.doc”; FileInfo oFileInfo = new FileInfo(file); MessageBox.Show(oFileInfo.FullName); 有没有想过如何使用System.IO的简单API访问标签?

将流保存到c#和winrt中的文件中

我在c#和winrt: var stream = await speech.GetSpeakStreamAsync(SpeechText.Text, language); stream是一个Windows.Storage.Streams.IRandomAccessStream 所以我对c#和winrt完全不熟悉。 我如何将包含wav文件的流保存到文件中? 在此先感谢Basilius