Tag: 文件

如何读取包含HTML的Lync会话文件?

我在c#中读取本地文件到字符串时遇到了问题。 这是我到现在想出来的: string file = @”C:\script_test\{5461EC8C-89E6-40D1-8525-774340083829}.html”; using (StreamReader reader = new StreamReader(file)) { string line = “”; while ((line = reader.ReadLine()) != null) { textBox1.Text += line.ToString(); } } 这是唯一可行的解​​决方案。 我已经尝试了一些其他建议的方法来读取文件,例如: string file = @”C:\script_test\{5461EC8C-89E6-40D1-8525-774340083829}.html”; string html = File.ReadAllText(file).ToString(); textBox1.Text += html; 但它没有按预期工作。 以下是我正在尝试阅读的文件的前几行: 正如你所看到的,它有一些时髦的角色,说实话,我不知道这是否是造成这种奇怪行为的原因。 但在第一种情况下,代码似乎跳过这些行,只打印“Office Communicator生成的文档……”

使用System.IO.BinaryWriter编写字符串与char数组的区别

我正在使用C#将文本写入二进制文件,并查看写入字符串和字符数组之间的数量差异。 我正在使用System.IO.BinaryWriter并在写入时观察BinaryWriter.BaseStream.Length。 这些是我的结果: using(BinaryWriter bw = new BinaryWriter(File.Open(“data.dat”), Encoding.ASCII)) { string value = “Foo”; // Writes 4 bytes bw.Write(value); // Writes 3 bytes bw.Write(value.ToCharArray()); } 我不明白为什么当我只写3个ASCII字符时,字符串重载会写入4个字节。 有谁能解释一下?

如何通过单个WinForm对话框获取文件夹或文件路径?

更新:似乎我不清楚我的问题是什么。 约翰阿伦对我的头衔的编辑似乎也引起了更多的误解。 标题更改为“我如何获取文件夹或文件路径?” 这不是我追求的。 我知道有一个对话框可以处理文件,另一个对象可以处理文件夹。 我知道这些对话框中的每一个都可以返回文件夹或文件的路径。 我说我不确切知道如何获取文件路径,但即使我知道如何操作它也没有帮助我。 正如我原来的问题所述: “我让用户通过某个对话框选择文件夹或文件。我不知道路径是属于文件夹还是文件。一旦用户点击”打开“按钮,我想要当前选择的目录或要存储在字符串中的文件路径。“ 我在这里的意思是我想使用一些可能存在或可能不存在的对话框。 我不知道用户是在文件或文件夹之后。 用户知道这一点,但用户不知道路径。 这就是使用对话框的原因。 用户将搜索所需的文件或文件夹,然后单击“打开”。 根据我的需要使用单个对话框更有意义。 我想看看是否存在这样的对话框,因为我对.NET Framework的体验有限。 Jared Kells的答案几乎就是我所寻找的。 在阅读了他提供的内容后,似乎不存在这样的对话框。 我将不得不提供自己的实现。 由于提出我自己的实现可能会耗费时间和困难,我现在将不会这样做。 如果某人提供了非常有用的答案,我会等几天选择答案。 感谢那些贡献的人,即使它不是我所追求的。 原始内容: 我正在寻找一种获取文件夹或文件的文件路径的方法。 我玩过OpenFileDialog和FolderBrowserDialog但没有取得多大成功。 我能够使用FolderBrowserDialog.SelectedPath获取文件夹路径。 使用OpenFileDialog类,我无法弄清楚如何获取文件路径。 即使我能弄明白,我仍然处于困境中。 我让用户通过某个对话框选择文件夹或文件。 我不知道路径是属于文件夹还是文件。 一旦用户点击“打开”按钮,我希望当前选择的目录或文件路径存储在字符串中。 似乎我使用的每个类都被文件或文件夹困住了。 这是否可以使用WinForms对话框? 我不想在此时编写自己的对话框。

如何将FlowDocument导出到DOC(x)或XLS

在我的程序中,我在FlowDocument生成一些报告,并使用DocumentViewer控件显示它。 现在我需要增加更多的出口机会。 我使用iTextSharp以PDF格式导出,我可以本地保存到XPS。 我可以将文档直接保存到任何办公室格式,DOC或XLS。 或者有人知道在DOC或XLS中转换PDF / XPS的好库?

文件重命名问题?

在c#中重命名文件: File.Move(source,Destination); File.Delete(source); 它成功执行,但是当我再次尝试重命名文件时,系统会给出以下exception: 进程无法访问该文件,因为它正被另一个进程使用。 我无法发现它在哪里使用? 当我进一步调试错误时,它显示我的类名是在w3wp.exe的进程中,这是IIS。 我接下来该怎么办? 越来越 foreach (string folder in folder) { FileSystemItem item = new FileSystemItem(); DirectoryInfo di = new DirectoryInfo(folder); item.Name = di.Name; item.FullName = di.FullName; item.Path = path + “\\” + item.Name; item.CreatedDate = di.CreationTime; item.IsFolder = true; item.Extension = “folder”; listFolder.Add(item); } docList = CreatXmllist(listFolder); return docList 这是我如何获取文件夹列表,然后它返回到xml。 […]

同时读写文件

对于使用File作为某种公司设备预留的全局存储的应用程序,我需要一种方法来读取和写入文件(或锁定文件,从中读取,写入并解锁)。 一段代码片段会出现我的意思: FileStream in = new FileStream(“storage.bin”, FileMode.Open); //read the file in.Close(); //!!!!! //here is the critical section since between reading and writing, there shouldnt //be a way for another process to access and lock the file, but there is the chance //because the in stream is closed //!!!!! FileStream out = new FileStream(“storage.bin”, FileMode.Create); […]

将日志文件保持在一定大小

我有一个应用程序在自助服务终端(C#/ WPF)中的独立面​​板PC上运行。 它对文本文件执行一些典型的日志记录操作。 PC具有一些有限的磁盘空间来存储这些日志。 我需要做的是能够指定允许日志文件的最大大小。 如果在尝试写入日志时超出最大大小,则会将新数据写入日志末尾,并从头开始清除最旧的数据。 获取文件大小没有问题,但有没有任何典型的文件操作技术来保持文件在一定的大小?

用C#创建文件的最快方法

我正在运行一个程序来测试查找和迭代具有大量文件的文件夹中的所有文件的速度。 该过程中最慢的部分是创建100万个文件。 我正在使用一种非常天真的方法来创建文件: Console.Write(“Creating {0:N0} file(s) of size {1:N0} bytes… “, options.FileCount, options.FileSize); var createTimer = Stopwatch.StartNew(); var fileNames = new List(); for (long i = 0; i < options.FileCount; i++) { var filename = Path.Combine(options.Directory.FullName, CreateFilename(i, options.FileCount)); using (var file = new FileStream(filename, FileMode.CreateNew, FileAccess.Write, FileShare.None, 4096, FileOptions.WriteThrough)) { // I have an option […]

如何将XML文件内容映射到C#对象

我是C#的新手,我正在尝试读取XML文件并将其内容传输到C#对象。 例如,一个示例XML文件可能是: Person 1 21 Person 2 22 ..可以映射到一个名为’Person’的C#类数组: Person[] people; Person对象可以包含以下字段: string name; uint age;

从数据库和文件系统中删除文件

我有一个表引用我们网络上共享位置的文件(将文件路径存储在数据库中)。 我有一个按钮需要删除数据库中的记录和文件系统中的文件: foreach (var report in reports) { string filePath = report.ReportPath; if (File.Exists(filePath)); { File.Delete(filePath); } context.ReportGenerations.DeleteObject(report); context.SaveChanges(); } 删除文件或删除数据库记录时可能会抛出exception,如果发生这种情况,我希望这两个操作都不会完成。 有没有一种简单的方法可以确保两个操作都成功完成?