Turbo Delphi 공개판을 사용중인 뉴비입니다.
exe가 위치한 폴더 아래, data라는 폴더속에 a.txt에다가 텍스트를 작성하기 위해서 다음과 같으 ㄴ코드를 작성했습니다.
<!--CodeS-->
AssignFile(F, '.\data\a.txt');
ReWrite(F);
WriteLn(F,'test');
CloseFile(F);
<!--CodeE-->
하지만 ReWrite(F)에서 멈추면서
EInOutError클래스에서 Invalid filename이라며 에러가 발생했다고 하네요.
'a.txt'를 넣거나, 절대경로를 넣는경우에는 작동하는 것으로 봐서는 .\를 붙인 상대경로에서 오류가 나는 것 같더라고요.
어쩔 수 없이 ExtractFilePath(Application.ExeName)를 붙여서 쓰긴 하는데...
무엇이 원인일까요?
그전에 Delphi 6 Personal을 구해다 쓸 때 만든 프로그램에서는 .\가 붙은 상대경로가 멀쩡히 작동한 기억이 있어서 그 코드를 붙여넣어도 같은오류네요.
코드는 문제 없어보이는데..
개발하시는 PC 의 OS 가 비스타가 아닌지요?
비스타의 경우 관리자가 아니면 쓰지 못하는 디렉토리 일수 있을거 같습니다.
비스타 시라면 델파이를 관리자 모드로 띄우고 실행해보세요.
혹은 실행파일을 관리자 모드로 ...
그럼 즐거운 프로그래밍 하시구요~