Откройте текстовый файл с помощью WPF
есть текстовый файл, который я создал в корневой папке проекта. Теперь я пытаюсь использовать Process.Start()
метод внешнего запуска текстового файла.
проблема у меня заключается в том, что путь к файлу неправильный и Process.Start()
не могу найти этот текстовый файл. Мой код выглядит следующим образом:
Process.Start("Textfile.txt");
Итак, как я должен правильно ссылаться на этот текстовый файл? Могу ли я использовать относительный путь вместо абсолютного пути? Спасибо.
изменить: Если я изменю код выше на это сработает?
string path = Assembly.GetExecutingAssembly().Location;
Process.Start(path + "/ReadMe.txt");
5 ответов
Windows должна знать, где найти файл, поэтому вам нужно как-то указать, что:
либо используя абсолютный путь:
Process.Start("C:\1.txt");
или установить текущий каталог:
Environment.CurrentDirectory = "C:\";
Process.Start("1.txt");
обычно CurrentDirectory
устанавливается в расположение исполняемого файла.
[Edit]
если файл находится в том же каталоге, где исполняемый файл, вы можете использовать код следующим образом:
var directory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
var file = Path.Combine(directory, "1.txt");
Process.Start(file);
то, как вы это делаете, прекрасно. Это найдет текстовый файл, который находится в том же каталоге, что и ваш exe, и откроет его с помощью приложения по умолчанию (возможно, Блокнота.исполняемый.) Вот еще примеры того, как это сделать:
http://www.dotnetperls.com/process-start
однако, если вы хотите установить путь, вы должны использовать полный путь. Вы можете построить полный путь, заботясь только об относительном пути, используя метод, указанный в этом сообщение:
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/e763ae8c-1284-43fe-9e55-4b36f8780f1c
Это будет выглядеть примерно так:
string pathPrefix;
if(System.Diagnostics.Debugger.IsAttached())
{
pathPrefix = System.IO.Path.GetFullPath(Application.StartupPath + "\..\..\resources\");
}
else
{
pathPrefix = Application.StartupPath + "\resources\";
}
Process.Start(pathPrefix + "Textfile.txt");
Это для открытия файла в папке, которую вы добавляете в свой проект под названием resources. Если вы хотите, чтобы он был в корне проекта, просто оставьте папку ресурсов в двух строках выше, и вам будет хорошо идти.
вы должны знать текущий каталог, если вы хотите использовать относительный путь.
System.Envrionment.CurrentDirectory
Вы можете добавить это в свой путь с помощью Path
System.IO.Path.Combine(System.Envrionment.CurrentDirectory, "Textfile.txt")
попробуйте использовать приложение.StartupPath путь как путь по умолчанию может указывать на текущий каталог.
этот сценарий был объяснен по следующим ссылкам..
окружающая среда.CurrentDirectory в C#.NET
http://start-coding.blogspot.com/2008/12/applicationstartuppath.html
в окне windows:
запустите блокнот с расположением файла сразу после него. WIN
process.start("notepad C:\Full\Directory\To\File\FileName.txt");