|
제가 작성하고자 하는 프로그램은 다음과 같은 순서로 작업을 합니다.
1. FTP 서버로부터 데이터 파일을 다운 받습니다. (a.dat 이라고 하는 파일)
2. 외부 DOS 어플리케이션을 실행합니다. (CreateProcess()사용해서)
3. 어플리케이션이 실행되면, a.dat파일을 입력으로 받아서 a.out 이라고 하는 파일을 생성합니다.
4. 생성된 a.out 파일을 다시 ftp 서버로 전송합니다.
5. 전송이 끝난 후, 생성된 a.out 파일과 a.dat 파일을 삭제합니다.
그런데, 마지막 과정에서 a.dat 파일은 삭제가 되는데, a.out 파일이 삭제가 안됩니다.
ftp 서버와의 접속은 Indy FTP 컴포넌트 (IdFTP)를 사용했습니다. 그리고, 저는 C++ Builder 6.0을 사용하고 있습니다.
a.out 파일이 ftp 서버로 전송된 것은 확인이 되었습니다. 그리고, FTP 서버로의 전송 작업이 끝난 걸 확인하기 위해서,
IdFTP 컴포넌트의 OnWorkEnd 이벤트에서 파일을 삭제하는 명령을 사용했습니다.
Remove()명령과, DeleteFile() 명령을 사용해 보았고,
if(FileExists(filename))DeleteFile(filename);
이렇게도 해 보았는데, 파일이 삭제가 안 됩니다. (a.out 파일만 삭제가 안됩니다.)
이게 혹시 DOS 실행 프로그램이 a.out 파일을 사용하고 있는 중이라서 안 되는 것인가요?
(DOS 실행 프로그램의 종료는 프로세스로 확인해서 종료가 된 것을 확인했습니다.)
만약 문제가 프로그램이 파일을 사용해서 생기는 문제라면, 이걸 어떻게 확인할 수 있나요?
그리고, 만약 그렇다면 이 파일을 어떤 방법으로 삭제해야 되는지, 여러 분들의 도움을 부탁드립니다.
미리 감사드립니다.
|