Как получить число строк без чтения файла для завершения
Есть ли способ получить 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%, не требуя знать общий номер строки.
Вот только некоторые случайные числа там, кстати.