В настоящее время я работаю над тем, чтобы моя программа выполняла программу (например, точку питания), а затем рядом с ней путь к файлу, который я хочу открыть. Моя программа получает путь к файлу с помощью:Выполнение имен файлов с пробелами в cmd pmt Передано из C++-программы
dirIter2->path()
Я получаю 2 пути программы и файла, объединить их в одну строку и передать их в следующее:
system(PathTotal.c_str())
это отлично работает, но моя единственная проблема заключается в том, что когда имя файла имеет пробел в своем имени, в командной строке указано, что он не может найти файл (потому что он думает, что имя файла заканчивается, когда оно попадает в первое пространство. это с кавычками, но это имя файла acutal, которое необходимо обернуть. (например. Я попробовал «C: \ users \ bob \ john cool», но это должно быть примерно так: C: \ users \ bob \ "john is cool")
Есть ли у кого-нибудь предложения о том, как я могу исправить это? Я думал о том, чтобы получить путь к папке, где находится файл, а затем получить имя файла. Я бы обернул имя файла кавычками и добавлю его в путь к папке. Я пробовал использовать -> path(), как указано выше, но единственная проблема заключается в том, что он выходит за пределы каталога папки?
Есть ли команда boost, которая могла бы получить путь enitre к файлу без получения файла?
Я не поручены к этой идее, если кто имеет какие-либо лучше предложения
Благодарности
Invalid предположение - это прекрасно работает со ссылкой на все это. Не нужно вдаваться в крайности, чтобы процитировать наименьшую возможную часть. Cheers & hth., –
@Alf - я пробовал процитировать всю строку - по какой-то причине она не работает, у меня была такая же проблема с программным путем, пока я просто не поставил кавычки, где были пробелы. Спасибо за комментарий – Johnston
@ Jonston: Я подозреваю, что вы сделали что-то не так. Например, цитируя «всю строку», включая аргументы. Или, не понимая о '\' 'в C++, или что-то в этом роде. Попробуйте воспроизвести проблему в абсолютно минимальной, но полной программе. Отправьте код, если процесс создания этой программы не решает проблему для вас. он действительно решает проблему, скажите :.-) –