c언어로 파일 및 폴더 실행하기 (한글과 공백 포함)
CString str = "C:\\program\\test";
str.Replace("\\", "//");
str.Replace("//", "\\");
char st[300];
for (int i = 0; i < 300; i++) {
memcpy(st, (char*)(LPCTSTR)str, i);
}
system(st);
system 명령어로 위의 CString 구문을 실행하고 싶은데,,
메타문자 때문인지, 잘 안됩니다. 자꾸 오류가 발생해서,,
\\를 \하나로 바꾼후 실행해도 생각대로 안되네요
필요한 기능은 해당 스트링이 파일이면 실행하고, DIR 이면 폴더를 열어주는 일입니다.
방법이 있을까요?
---------------------------------------------------------- 수정
ShellExecute(NULL, _T("open"), _T("J:\\"), NULL, NULL, SW_SHOW); // 폴더는 잘 열린다.
폴더는 실행하는 방법을 찾았습니다.
그런데 같은 방법으로
ShellExecute(NULL, _T("open"), _T("C:\\Program Files(x86)\\GoClean\\GoClean.exe"), NULL, NULL, SW_SHOW);
파일을 실행하면 열리지가 않네요..
----------------------------------------------------------- 수정
system("C:\\Users\\Lee\\Desktop\\mfc.txt"); // 이것도 실행됨.
system("C:\\Users\\Lee\\Desktop\\test.exe"); // 이것도 실행됨.
확인 결과, 공백이랑 한글이 있으면, 실행이 안되네요...
공백과 유니코드가 없는 경로와 파일명에서는 정상적으로 실행이 되고,
나머지는 되지 않습니다..
한글과, 공백이 들어간 파일도 실행시킬 방법이 있을까요??
unicode로 빌드하거나 또는 L"C:\
unicode로 빌드하거나 또는 L"C:\\Program Files(x86)\\GoClean\\GoClean.exe" 해보세요.
_________________________
http://joone.net
https://kldp.org/blog/2725
http://opensoftware.tistory.com
http://joone4u.blogspot.com
https://gnome.or.kr
댓글 달기