我对c#和.net非常非常新手并试图理解它。
我正在使用how to read all files inside particular folder中的解决方案,并尝试应用我的以下代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace HowToCopyTextFiles
{
class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
foreach (string txtName in Directory.GetFiles(@"C:\Users\Environ ment\Desktop\newfolder","*.rtf"))
{
using (StreamReader sr = new StreamReader(txtName))
{
sb.Append(sr.ReadToEnd());
sb.AppendLine();
}
}
Console.Write(sb.ToString());
Console.ReadLine();
}
}
}
结果没问题,但在我的测试文件的末尾显示了环境名称。
等。
this is content of first file
this is content of second file
↑My environment full name ↑My
environment full name ↑My environment full name (Yes 3 times)
我使用的是cs-script,是不是因为这个?
使用.txt文件时,它运行正常。所以问题是如何正确地将.rtf文件作为文本流打开?
答案 0 :(得分:0)
如果打开rtf文件,它有时会将超级隐藏(不可见甚至显示隐藏文件选项)临时文件保存为~filename.rtf,这也是由c#读取的。
我使用了此处的代码:C# - Get a list of files excluding those that are hidden
DirectoryInfo directory = new DirectoryInfo(@"C:\temp");
FileInfo[] files = directory.GetFiles();
var filtered = files.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden));
foreach (var f in filtered)
{
Debug.WriteLine(f);
}
这解决了我的问题。