2016-02-03 2 views
1

Итак, я создал свою собственную программу «Блокнот», все работает так же, как и обычный блокнот, но теперь я хочу запустить его из .txt-файлов. Я меняю программу запуска по умолчанию для файлов .txt на свой NotePad2.0. Проблема в том, когда я запускаю из .txt-файла, который он не загружает в текст. У кого-нибудь есть идеи? Я ищу возможный путь к файлу .txt или каким-либо другим способом, чтобы я мог вытащить текст из файла .txt при открытии. (другие подробности: Я говорю о том, когда я нахожусь в проводнике или на рабочем столе, и я открываю файл .txt. Я хочу, чтобы текст, который находится в этом .txt-файле, загружался в мою программу.) Спасибо любой, кто помогает/смотрит на мою проблему!C# - Пользовательский блокнот по тексту

+3

вы смотрите на 'args' параметра в главном методе? – Balah

+3

Скорее всего, вам не хватает или неправильного использования, 'object [] args' вашего приложения' Main() ' – clarkitect

+0

, который смотрит в него, сообщит вам через несколько минут. – Stststudar

ответ

2

Используйте метод Environment.GetCommandLineArgs, чтобы получить имя файла, который открывается, а затем прочитать весь текст внутри файла, используя метод File.ReadAllText и загрузить полученную строку в приложение (возможно, в текстовом поле):

textBox1.Text = System.IO.File.ReadAllText(Environment.GetCommanLineArgs()[1]); 

Где textBox1 является текстовым контейнером в вашем приложении.

После этого, если вы откроете текстовый файл с вашим приложением, вы увидите, что весь его текст правильно загружен в ваш TextBox.

Обратите внимание, что первым аргументом является имя самого исполняемого файла. Таким образом, вам нужен второй аргумент. Кроме того, вы можете проверить, есть ли второй аргумент, потому что в противном случае он выйдет из строя, если вы сразу откроете исполняемый файл. Вам также могут потребоваться дополнительные проверки, например, если файл является текстовым (.txt) файлом или нет и так далее.

Для этого, вы можете сделать что-то вроде этого:

var args = Environment.GetCommanLineArgs(); 
if (args.Length > 1) 
{ 
    textBox1.Text = System.IO.File.ReadAllText(args[1]); 
} 
+0

AWESOME !! Большое вам спасибо, что сработало отлично! Я застрял в этой проблеме некоторое время, теперь я ценю помощь, которую она работает именно так, как я этого хотел! – Stststudar

+0

@Stststudar Рассмотрите возможность опроса и принятия этого ответа, если это было полезно. –

+0

Я полностью бы и попробовал, но мне нужно 15 репутации, чтобы сделать это :(Так что теперь все, что я могу сделать, это сказать мою благодарность в тексте. – Stststudar

Смежные вопросы