2015-04-19 2 views
1

Так как название этого сообщения говорит, как я могу прочитать последние n строк файла и сохранить их в списке?Чтение последних n строк файла

Имейте в виду, что:

  • файл большой (где-то между 5 МБ и 10 МБ)
  • файл может или не может быть заблокирован другим потоком
  • он получает доступ другой поток (новая строка добавляется в файл при завершении процесса)

Спасибо.

+4

Добро пожаловать в stackoverflow. Пожалуйста, прочитайте [ask] –

+4

Это не форум «напишите мне». Вы пишете код, мы помогаем вам его исправить, или у вас есть простой вопрос, мы отвечаем на вопрос – xanatos

+0

Кажется, вы хотите написать программу «хвост». Попробуйте googling для файла хвоста C# – xanatos

ответ

1

вы можете использовать этот код:

  List<string> Temp = new List<string>(); 
      int SkipLinesNum = 8; 
      var GetAllFileToVar = File.ReadLines(@"C:\Sahbak\LinesToList.txt").Skip(SkipLinesNum); 
      for (int n = 0; n < GetAllFileToVar.Count(); n++) 
      { 
       Temp.Add(GetAllFileToVar.ElementAt(0)); 
      } 

теперь у вас есть список строки под названием «Temp», который содержит все строки из п = 8. вы можете в любое время изменить номер «n», а также получить его от пользователя.

Это самый эффективный метод, при котором вы не загружаете весь файл в память.

+0

OP сказал, что размеры файлов будут от 5 до 10 МБ. Не кажется очень эффективным загрузить все эти вещи в память ... – Udontknow

+0

@Udontknow Не выглядит слишком неэффективным, даже не на вашем телефоне ;-). –

+1

Ну, по крайней мере, это работает, но я бы предпочел, чтобы мои программы не тратили ресурсы. Если каждая программа будет работать так, ваш телефон не будет забавным использовать ... ;-) – Udontknow

Смежные вопросы