Запуск стороннего приложения и передача ему параметров - C#
Формулировка задачи:
Всем привет!
Из своего приложения запускаю стороннюю консольную программу и хочу передать ей строку с параметрами.
Перед этим, пользователь через окно обзора выбирает несколько файлов и добавляет их в список, происходит это так:
Далее формируется массив из строк, содержащих пути к файлам:
и по нажатию на кнопку осуществляется перебор массива со строками и вызов для каждого файла отдельного процесса:
Всё бы ничего, но пути к файлам содержат пробелы.
Вопрос заключается в следующем:
Подскажите пожалуйста, как мне взять в кавычки путь к файлу, содержащийся в SelectedFiles[i]?
чтобы строка параметров выглядела примерно так:
-i "c:\Музыка\Новая папка" ...
Ведь если взять путь в кавычки, проблемы с пробелами не будет.
Я знаю, что нужно использовать конструкции типа ", но как правильно разместить эти конструкции и элемент массива с путём к файлу так, чтобы путь был в кавычках?
И сразу же хотел спросить, может кто знает, как указать имя выходного файла такое же, как и у входного?
То есть результирующий файл должен быть с таким же именем, как и входной, только другой формат у него будет.
Заранее большое спасибо!
private void BtnAddAudio_Click(object sender, EventArgs e) { OfdAudio.Title = "Открытие файла"; OfdAudio.InitialDirectory = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"; OfdAudio.Multiselect = true; OfdAudio.Filter = "wav файлы (*.wav)|*.wav|mp3 файлы (*.mp3)|*.mp3|mp4 файлы (*.mp4)|*.mp4|ogg файлы (*.ogg)|*.ogg|m4a файлы (*.m4a)|*.m4a|flac файлы (*.flac)|*.flac|Все файлы (*.wav;*.mp3;*.mp4;*.ogg;*.m4a;*.flac)|*.wav;*.mp3;*.mp4;*.ogg;*.m4a;*.flac"; OfdAudio.FilterIndex = 1; OfdAudio.RestoreDirectory = true; if(OfdAudio.ShowDialog() == DialogResult.OK) { foreach(string file in OfdAudio.FileNames) { ListAudio.Items.Add(Path.GetFileName(file)); CreateArrayAudioFiles(file); } } }
private void CreateArrayAudioFiles(string path) { SelectedFiles = new string[ListAudio.Items.Count]; for(int i = 0; i < SelectedFiles.Length; i++) { SelectedFiles[i] = path; } }
ConvertationAudioProcess.StartInfo.FileName = "ffmpeg.exe"; for(int i = 0; i < SelectedFiles.Length; i++) { ConvertationAudioProcess.StartInfo.Arguments = "-i \"\" + SelectedFiles[i] + \"\" result\\audio\\1.wav"; ConvertationAudioProcess.Start(); ConvertationAudioProcess.WaitForExit(); ConvertationAudioProcess.Close(); }
Решение задачи: «Запуск стороннего приложения и передача ему параметров»
textual
Листинг программы
private void CreateArrayAudioFiles(string path) { SelectedFiles = new string[ListAudio.Items.Count]; for(int i = 0; i < SelectedFiles.Length; i++) { SelectedFiles[i] = path; // Один и тот же путь } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д