2010-12-21 3 views
1

안녕 얘들 아 나는 2000 년 이상 플랫폼에서 CopyFile을 사용해야합니다. 내 응용 프로그램을 다른 폴더에 복사하려고합니다. c :라고 말합니다.C++ CopyFile 함수 문제

그래서이 작동합니다

BOOL didThisFail = FALSE; 

    if (CopyFile(L"MyApplication.exe", L"something.exe", didThisFail)) 
     cout << "File was copied" << endl; 

하지만이 나던 :

BOOL didThisFail = FALSE; 

    if (CopyFile(L"MyApplication.exe", L"C:\\something.exe", didThisFail)) 
     cout << "File was copied" << endl; 
+3

루트 디렉토리에 쓸 수있는 권한이 있습니까? –

+0

글쎄, 이제는 C 내부의 폴더에 복사 할 수 있는지 확인했기 때문에 그렇지 않다. 바보 같아 C :로 카피 할 수 없다. 어쩌면 그것은 Win7/Vista 제한 때문입니다 – Tom

답변

2

GetLastError()가 실패한 이유를 말할 것이다, 아마 액세스 거부 오류.

+0

이 예제에서 GetLastError는 어떻게 사용합니까? 제발 도와주세요 – Tom

+0

여기를 참조하십시오 : http://msdn.microsoft.com/en-us/library/ms679360%28VS.85%29.aspx. 기사 끝에는 예에 대한 링크가 있습니다. 'didThisFail'이 true 일 때 GetLastError()를 호출하십시오. – yasouser

+0

if (CopyFile (L "MyApplication.exe", L "C : \\ something.exe", didThisFail)) cout << "파일을 복사했습니다"<< endl; else \t printf ("% d", GetLastError()); \t 그런 다음 winerror.h에서 찾아보십시오. – James

0

디스크 공간이 부족할 경우 copy가 실패 할 수 있습니다. 내가이 문제에 갇혔을 때 나는 복사 명령을 Move로 바꿨고 그것은 나를 위해 잘되었다.

오류 코드 112를 얻는데 사용했습니다.