2012-04-02 4 views
-7

Я пытаюсь прочитать все файлы в папке. Если имя index.html, ничего не происходит. Это даже не открытие файла в браузере.Открыть файл в C#

Это код, который я использую.

foreach (System.IO.FileInfo thefile in fiArr) 
{ 
    if (thefile.Name == "index.html") 
    { 
     FileStream fileStream = new FileStream(path + thefile.Name, FileMode.Open, FileAccess.Read); 
    } 
} 
+2

Какой браузер вы говорите? Вы получаете какие-либо ошибки? Исключения? – Oded

+0

Я имею в виду Google Chrome, например, потому что есть index.html с сайтов – Kiwimoisi

+0

У меня нет исключения. Это просто ничего не делает. – Kiwimoisi

ответ

2

Все, что ваш код создает FileStream, указывающий на этот файл. Таким образом, вы можете прочитать файл и получить его содержимое в памяти. Но вы не можете ожидать, что он откроется в любом браузере. Вы можете использовать метод Process.Start, чтобы открыть файл, используя программу по умолчанию, связанная с этим типом файла:

foreach (System.IO.FileInfo thefile in fiArr) 
{ 
    if (thefile.Name == "index.html") 
    { 
     Process.Start(thefile.Name); 
    } 
} 
+0

Спасибо, это все, что мне нужно. – Kiwimoisi

+0

@Emged - Ваш вопрос помечен как asp.net. Имейте в виду, что вызов Process.Start откроет браузер только на машине хоста/сервера. Это может быть хорошо, пока вы разрабатываете, но после его развертывания вы откроете на сервере кросс-сервер, где, возможно, никто никогда не увидит. – Fishcake

0

Ваш код помещает содержимое файла в FileStream, так что вы можете использовать его в код. Вам нужно будет что-то сделать с этим FileStream.

Если вы хотите файл, открытый с помощью приложения по умолчанию (то есть, появляющийся в браузере), используйте это:

System.Diagnostics.Process.Start(thefile); 
Смежные вопросы