Как открыть файлы.rtf в виде текстового потока
Я очень, очень новичок в C# и.net и пытаюсь это понять.
Я использую решение о том, как читать все файлы в определенной папке и пытаюсь применить в моем коде ниже.
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-скрипт, это из-за этого?
При использовании файлов.txt все работает нормально. поэтому вопрос в том, как правильно открыть файлы.rtf в виде текстового потока?
1 ответ
Решение
Если файл rtf открыт, он иногда сохраняет временный файл супер скрытого (даже не отображаемого параметра скрытого файла) файла как ~filename.rtf, который также читается C#.
Я использовал код здесь: C# - Получить список файлов, исключая те, которые скрыты
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);
}
Это решило мою проблему.