Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[2850] [질문] [델파이] 서브디렉토리, 화일 출력
lci4616 [ ] 1562 읽음    1998-05-19 02:29
특정한 디렉토리의 서브 디렉토리와 화일 그리고 각 디렉토리와 화일의 
날짜,시간, 속성,크기 등을 알아내는 방법을 알고 싶습니다.

예를 들어 저는 FindFirst, FindNext 두 함수를 사용하여 디렉토리와
화일 그리고 그 각각의 속성을 알아내는데 까지는 성공했는데요

한 가지 이상한 현상이 발생하더군요 저는 델파이의 버그라고 밖에
생각할 수 밖에 없었는데요 ...

디렉토리마다 결과 값이 맞는 경우가 있는가 하면 저처럼 Windows
디렉토리로 가서 출력해보면 몇몇 서브 디렉토리는 보이지도 않고
또한 화일도 보이지 않는(출력되지 않음) 것이 생기더군요
그런데 다른 디렉토리로 가서 테스트 해보면 정상적으로 되고 말입니다.

또한 델파이의 DirectoryListBox, DirectoryOutline 라는 컴포넌트가 있는데요
둘다 이상한 버그가 있더군요 앞에서도 말씀드렸지만 다른 모든 디렉토리는
정상적으로 출력이 되는데 Windows디렉토리에 있는 서브디렉토리만
나오는게 있는가 하면, 실제로는 디렉토리가 있는데 보이지않는(출력되지않는)
디렉토리도 있더군요(참고로 저는 델파이 3.0을 사용하고 있습니다.)

다시 본론으로 돌아가서요 제가 서브디렉토리와 화일을 알아내기 위해
FindFirst, FindNext을 사용한 방법을 아래에 적었습니다.
어떤 부분이 문제인지 아니면 FindFirst, FindNext를 사용하는 방법외에
다른 더좋은 방법은 없는지 알고 싶습니다. 그럼 좋은 하루 되십시오.

==================================================================

  with DirectoryListBox1 do //경로끝에 '/'가 없으면 추가
  begin
    if (Directory[length(Directory)] <> '\') then
      PathStr := Directory + '\*.*'
    else PathStr := Directory + '*.*';
  end;

  Found := FindFirst(PathStr, faAnyfile, SearchRec);
  while Found = 0 do
  begin
    if Length(SearchRec.FindData.cFileName) > 12 then
      ListBox.Items.Add(SearchRec.FindData.cAlternateFileName)
    else ListBox.Items.Add(SearchRec.FindData.cFileName);

    Found := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
 


+ -

관련 글 리스트
2850 [질문] [델파이] 서브디렉토리, 화일 출력 lci4616 1562 1998/05/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.