2014-09-01 3 views
0

동일한 오류가 반복적으로 발생하며 실제로 이유를 모르겠습니다.Delphi XE 5에서 .txt를 열려고 시도했습니다.

내 코드에서 .txt 파일이 있는지 테스트하려고하지만 여전히 "파일 위치를 찾을 수 없음"오류가 표시됩니다.

나는 다음과 같은 코드를 사용 :

IF Not FileExists('Some.txt') then 
    ShowMessage('Some message'); 

내가 장소를 프로그램 자체와 동일한 폴더에있는 .txt 파일을했다,하지만 여전히 그것을 찾는데 실패했다.

나는 다음과 같이 작동하도록 쪘 :이 XE 5 경로를 사용하는 데 필요한 이유 델파이 2010 년

IF Not FileExists('F:\Delphi\TextFiles\Some.txt') then 
    ShowMessage('Some message'); 

, 그것은 파일 경로를 지정하지 않고 작동

가, 누군가가 나에게 설명해주십시오 수 있습니다 ? 저는 집에서 XE 5를 사용하고 학교에서 2010을 사용합니다.

답변

2

파일 이름 'Some.txt'은 상대 경로입니다. 상대 경로는 프로세스 작업 디렉토리와 관련이 있습니다. 자주는 아니지만 종종 작업 디렉토리는 실행 가능 디렉토리와 동일합니다. 분명히 프로세스의 작업 디렉토리는 그 이름의 파일을 포함하지 않습니다.

프로세스 작업 디렉토리가 확실하지 않은 경우 GetCurrentDir으로 전화하십시오.

프로그램에서이 텍스트 파일을 찾는 방법을 알고 싶다면 직접 질문해야하는 질문. 텍스트 파일은 어디에 위치해야합니까? 실행 파일과 같은 디렉토리에 있습니까? 그렇다면 프로그램이 프로그램 파일 디렉토리 아래에있을 때 UAC로 인해 파일에 쓸 수 없도록 준비하십시오. 또는 파일이 사용자 프로필에 있어야합니까? 또는 사용자 별이 아닌 시스템 전체 위치 일 수도 있습니다. 파일의 위치를 ​​명확하게 결정할 때만 파일의 위치를 ​​결정할 수 있습니다.

+0

프로그램이 파일의 위치를 ​​찾으려는 곳이 있습니까? 프로그램과 .txt 파일을 같은 사용자에게 옮겨 보았습니다.이 프로그램에서는 프로그램이 설치되어 있지만 여전히 동일한 오류가 발생합니다. –

+1

네, 제가 말했듯이 그것은 작업 디렉토리입니다. GetCurrentDir을 사용하여 쿼리하십시오. –

+0

글쎄, 나는 그것을 작동시키는 것 같았다. 추가 버튼을 추가하고 GetCurrentDir을 RichEdit에 추가 한 다음 .txt를 해당 Dir에 붙여 넣었습니다. 도움에 다시 한번 감사드립니다. –