2016-01-20 4 views
1

Существует тип файла с расширением «.pop». Я могу открыть его с помощью блокнота. Я хочу, чтобы содержимое этого файла было построено в моем приложении формы C#. Как я могу это сделать?Получить содержимое неизвестного файла в приложении формы

+0

ли это 'текстовый файл '? Если это вы, безусловно, можете это сделать ... – Ian

+0

Да, это текстовый файл. Должен ли я писать свою программу, как чтение из TXT-файла. – tebdilikiyafet

+0

Как серия байтов, да, любое содержимое файла может быть прочитано. Если эти байты не шифруются или кодируются каким-либо нечетным образом, и у вас есть разрешение на его чтение, тогда вы можете его открыть и интерпретировать. Проверьте классы File.IO – ne1410s

ответ

6

Если это текстовый файл, который вы могли бы использовать File.ReadAllLines метод:

string[] lines = File.ReadAllLines("myfile.pop"); 

И тогда вы могли бы перебрать строки массива или доступа к отдельным линиям по индексу. Обратите внимание, однако, что это загрузит все содержимое файла в памяти, которое может быть не очень хорошим, если файл довольно большой. В этом случае вы можете прочитать его построчно с помощью StreamReader:

using (var stream = File.OpenRead("myfile.pop")) 
using (var reader = new StreamReader(stream)) 
{ 
    string line; 
    while ((line = reader.ReadLine()) != null) 
    { 
     // do something with the line here 
    } 
} 

В этом случае только одна строка загружается в память.

+0

Что означает объект stream в первом блоке использования? – Adil

+0

Это экземпляр FileStream, возвращаемый методом File.OpenRead. Затем он передается во второй «StreamReader». –

+0

Он не передается в StreamReader, у вас есть файл вместо потока – Adil

2

Если myfile.pop является фактически текстовый файл, я предлагаю использовать File.ReadLines (который, в отличие File.AllReadLines читает файл построчно без загрузки всего содержимого файла в память):

foreach(String line in File.ReadLines("myfile.pop")) { 
    //TODO: put relevant code here 
}