|
전종욱 님이 쓰신 글 :
: 안녕하세요.
:
: TFileListBox의 메서드 중 ApplyFilePath라는 것이 있습니다.
:
: 그런데 여기에 물결표시(~)가 포함된 파일 이름을 넣어주면 오류가 납니다.
:
: 이를테면 "C:\\Program Files\\MyProgram\\Project.exe"와 동일한 파일인
:
: "C:\\PROGRA~1\\MYPROG~1\\Project.exe" 말이죠..
:
: 위에 것은 잘 들어가는데 아랫 것이 문제입니다.
:
: 해결할 방안이 없을까요?
:
: 제가 아직 컴퍼넌트 사용하는데 많이 미숙한지라... ^^
:
: 수고하세요.
:
임펠리테리입니다.
간단히 말하면, C:\\PROGRA~1\\MYPROG~1\\Project.exe 와 같은 패스는 사용하시지 않는 것이 좋습니다. 이런 패스 표기법이 표준이 아니므로 VCL의 곳곳에 이와 같은 방법으로 표시했을 때 문제가 생기는 부분이 있습니다.
사실 fat가 FAT16 이라면(다시 말해 win95 환경이라면) 디스크에 실제로 저장되는 패스는 위와 같이 ~ 표시가 나타날 수 있습니다. 이와 같은 디렉토리명을 8.3 포맷이라고 하는데, 이 8.3 포맷과 표준인 긴 패스네임과 서로 변환할 수 있는 함수가 Win32 API에 있습니다.
GetShortPathName(), GetFullPathName()
말씀하신 것과 같은 문제에서는 이들 함수를 써서 표준 패스문자열을 얻어서 처리하면 되겠지요?
그럼 참고하시길...
|