2013-06-23 2 views
2

Рассмотрим следующее:Запустить файл в другой каталог

У меня есть программа C++ в C:\Documents\myProgram.exe С помощью этого кода в нем: system("start C:\\somefolder\\start.bat");

Это запустит целевой файл (START.BAT) в C:\Documents\ вместо `C: \ somefolder \ '.

Мой вопрос: как мне выполнить файл в его собственном каталоге, а не в каталоге myProgram?

В теории это то, что я хочу сделать с помощью C++: cd C:\somefolder\, start start.bat

+2

Вам просто нужно установить рабочий каталог. –

ответ

2

Для этого вы можете сделать одну из двух вещей (что я нашел).

A) Вы можете использовать chdir() в unistd.h; см http://pubs.opengroup.org/onlinepubs/7908799/xsh/unistd.h.html

или

B) Вы можете использовать то, что называется система File Interface, из библиотеки GNU, более продвинутые вещи; см. http://www.gnu.org/software/libc/manual/html_node/File-System-Interface.html#File-System-Interface.

В любом случае, удачи, надеюсь, вы найдете что-то, что сработает!

+0

Я использовал ваше решение A для простоты и работал безупречно! Спасибо! – Willy

+0

Спасибо, я пытаюсь помочь: D – ChristonianCoder

+0

Поскольку это помечено Windows: собственный API является ['SetCurrentDirectory'] (http://msdn.microsoft.com/en-us/library/aa365530 (v = vs.85) .aspx) – MSalters

3

Если вы на окна в любом случае, используйте ShellExecute, вы можете установить больше вещей и запустить даже документы, ссылки и т.д.