Как получить число строк без чтения файла для завершения

Есть ли способ получить Number of Lines в большом текстовом файле, но без чтения содержимого файла или файла чтения до конца и Counting++.

Возможно, есть некоторые атрибуты файлов, но они не могут найти их вообще. Поскольку я мог бы быть в некоторых случаях, когда я должен получить Total Number of Line и сравнить его с текущей строкой, чтобы отобразить Percentage, и просто для отображения в процентах, было бы глупо читать сначала весь контент, чем читать его снова. Отобразить необработанный текст у пользователя.

Bests

Ответы

Ответ 1

Нет. Вы должны прочитать файл. Рассмотрите возможность сохранения его в начале файла или в отдельном файле при записи файла, если вы хотите быстро найти его без учета.

Обратите внимание, что вы можете передать файл, и это удивительно быстро:

int count = File.ReadLines(path).Count();

Потому что я мог бы быть в некоторых случаях, когда я должен получить Total Number of Line и сравнить его с текущей строкой, чтобы отобразить Percentage, и просто для отображения в процентах может показаться глупым читать сначала все содержимое, чем читать его снова для отображения исходный текст у пользователя.

О, просто получите размер файла и длину каждой строки в байтах и ​​сохраните кумулятивный счетчик количества обработанных байтов.

Ответ 2

Нет, другого пути нет.

Файл не основан на строках (или даже на основе символов), поэтому нет метаинформации о количестве строк (или даже количестве символов). Единственными метаданными о содержимом является длина в байтах.

Если у вас есть дополнительная информация о файле, например, каждая строка имеет одинаковую длину и использует 8-битную кодировку, так что количество символов совпадает с количеством байтов, вы можете вычислить количество строк из размера файла.

Ответ 3

Как сказал Гуффа и Джейсон, нет способа получить строки, кроме чтения, до конца.

Чтобы решить вашу проблему по-другому:

Если вас интересует только процентное отображение, вы МОЖЕТЕ попытаться воспроизвести это значение из общего размера файла и строки, в которой вы сейчас находитесь. Вам нужно применить некоторые трюки voodoo для получения прочитанных байтов (например, вы прочитали строку 10 и 200 байт или что-то еще), а размер файла - 400 байт. Вероятно, вы можете догадаться, что вы на 50%, не требуя знать общий номер строки.

Вот только некоторые случайные числа там, кстати.