2013-06-11 4 views
1

Извините за вероятный вопрос noobish, только начинающий изучать C# и не смог найти ничего, что сработало.Загрузка из текстового файла при запуске программы

Я делаю текстовый редактор в C#, и до сих пор он может открывать и сохранять текстовые файлы внутри программы с помощью диалогов, но как я могу заставить его загрузить текст из файла, который я открываю в Windows Explorer, вне редактора, с редактором

В принципе, я уже читаю текстовые файлы, открытые внутри редактора, но как я могу сделать так, чтобы, если я открою текстовый файл (и имею программу по умолчанию для открытия текстовых файлов установлен в мой редактор), он прочитает его?

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

+5

Существует основной метод. Этот метод вызывается для запуска приложения. Он передает все аргументы командной строки/оболочки, если они есть. Проверьте, есть ли он, если так относитесь к нему как к имени файла и пытайтесь его открыть, как и любой другой файл. – Cameron

+0

@ Давид: Нет. Вопрос довольно ясен. Это расплывчато только в том случае, если Серднад не знает, как выполнить то, что он хочет (нуждается в повышении в правильном направлении). – Cameron

+0

Вы спрашиваете, как создать ассоциацию файлов (так, когда вы нажмете на файл в Проводнике, он запустит ваше приложение) или о том, как обрабатывать ассоциации файлов в вашем приложении или оба этих вопроса? – Dennis

ответ

7

Если я правильно понял вас, вы хотите передать имя файла/имена в качестве аргументов командной строки? Если вы посмотрите на Main, который запускает программу, вы можете сохранить параметры в строке [] (строковый массив), поэтому, если вы передадите аргументы, вы можете просто проверить args [] внутри программы, чтобы получить параметры, которые вы отправлено. Пожалуйста, спросите больше, если вам нужна дополнительная помощь!

ОБНОВЛЕНО Согласно вашему запросу, если вы откроете файл из проводника Windows, он отправит путь к файлу в метод Main. Поэтому давайте скажем, что вы нажимаете файл и выбираете его в текстовом редакторе. Вы должны использовать путь, как я делаю ниже, и читать файлы. Затем вы можете делать все, что захотите, с контентом.

class TestClass 
{ 
    static void Main(string[] args) 
    { 
      //Now you have all arguments in the string array 
      if(args.Length != 0) 
      { 
       string pathToTextfile = args[0]; 
      } 

      StreamReader textFile = new StreamReader(pathToTextfile); 
      string fileContents = textFile.ReadToEnd(); 
      textFile.Close(); 


    } 
} 
+0

Да, это выглядит правильно, я попробовал что-то похожее на это, но получил ошибку, но я не получаю ее больше. – Serdnad

+0

Теперь я должен работать, вам нужно только добавить то, что вы хотите сделать с содержимым! – 8bitcat

+0

Хорошо, я думаю, что я понял, я сейчас его реализую, и дам вам знать, если это работает. – Serdnad

0

Вы можете использовать OpenFileDialog класс, чтобы выбрать файл для просмотра в вашей программе.

+0

интересно, другое понимание проблемы. Давайте подождем op ... – David

+1

Извините, что я имел в виду, моя программа уже может это сделать, но если я дважды щелкнул по файлу, мой редактор откроется так, как должен, но он не будет загружать файл, и это что я ищу. – Serdnad

1

Итак, у вас есть текстовый редактор, закодированный на C#, и вы хотите, чтобы иметь возможность открывать текстовый файл, дважды щелкнув файл в проводнике Windows. Если это так, в основном 2 шага: 1. Ваша программа редактора должна принять один аргумент в качестве имени файла. Карл уже привел пример. 2. Вам необходимо связать файлы * .txt с текстовым редактором. Это можно сделать, отредактировав реестр Windows. пожалуйста, проверьте What registry keys are responsible for file extension association

+0

Спасибо, хотя уже сделали # 2, просто нужно было сделать шаг 1 :) – Serdnad