1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

안녕하세요?

아별닷컴의 주인장 오주원입니다.



아별툴을 사용하다가..

원하는 결과물이 안 나와서 살펴보니.. 에러가 있어서 수정하면서 알게된 팁을 공유합니다.


아별툴에는 특정 폴더의 파일 리스트를 생성해주는 기능이 있습니다.

아별툴 리본메뉴 > 정보 > "특정 폴더의 파일 리스트 생성" 을 클릭하면 파일 리스트를 생성할 수 있습니다.


원래는 하위 폴더를 포함해서 생성하도록 프로그래밍했는데,

어째선지 최 상위 폴더의 리스트만 만들어서 확인해보니 GetAttr()함수의 리턴값이 예상 외의 값을 리턴하는 것이었습니다.


원래 코드는 아래와 같았습니다.

           If GetAttr(Path & strFile) = vbDirectory Then


특정 경로의 파일 또는 폴더의 속성이 디렉토리(vbDirectory)이면 그 하위 폴더를 검색하는 작업을 하게 했는데,

GetAttr(Path & strFile)의 결과값이 vbDirectory의 값이 16이 아니라 8208이 나오는 것입니다.

그래서 하위 폴더를 모두 패스해버리더군요..


그래서 검색해보니 아래와 같은 안내가 있었습니다.


http://www.tek-tips.com/viewthread.cfm?qid=751597


 Private Const FILE_ATTRIBUTE_DIRECTORY = 16
 Private Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192


위 두개 상수를 더해서 8192+16 = 8208이 나온 것이라구요..

그래서 해당 경로의 속성에 폴더의 속성이 포함된건지 확인하려면 아래와 같이 해야한다고 하네요..


            If (GetAttr(Path & strFile) And vbDirectory) = vbDirectory Then


위와 같이 수정해서 하위 폴더도 잘 검색되도록 업데이트했습니다.

수정된 아별툴은 몇가지를 더 수정해서 공개하도록 하겠습니다.


도움이 되셨기를..




참고로)

디렉토리가 아닌 파일의 경우는 GetAttr(Path & strFile) And vbDirectory 의 결과값이 0이 나옵니다.

디렉토리는 GetAttr(Path & strFile) And vbDirectory의 결과값이 16이 리턴을 합니다.



Visual Basic의 팁이지만, 같은 내용이니 아래 링크의 MSDN문서도 확인해보세요..

https://msdn.microsoft.com/en-us/library/hds568h4(v=vs.90).aspx


' Test for normal. 
If (MyAttr And FileAttribute.Normal) = FileAttribute.Normal Then
   MsgBox("This file is normal.")
End If 

' Test for normal and readonly. 
Dim normalReadonly As FileAttribute
normalReadonly = FileAttribute.Normal Or FileAttribute.ReadOnly 
If (MyAttr And normalReadonly) = normalReadonly Then
   MsgBox("This file is normal and readonly.")
End If 

' Assume MYDIR is a directory or folder.
MyAttr = GetAttr("C:\MYDIR")
If (MyAttr And FileAttribute.Directory) = FileAttribute.Directory Then
   MsgBox("MYDIR is a directory")
End If

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 엑셀일반 엑셀 짜투리 팁 모음.. imagefile [13] [레벨:30]아별 2005-07-22 52707
공지 엑셀일반 엑셀 잘 하는 요령은? _ 엑셀 추천사이트 포함 [2] [레벨:30]아별 2009-11-12 40734
공지 엑셀일반 엑셀 단축키(바로가는키, ShortCut) 총정리입니다. imagefile [247] [레벨:30]아별 2010-08-29 106156
72 엑셀일반 [엑셀에러] stdole32.tlb imagefile [레벨:30]아별 2013-09-27 112981
71 엑셀일반 엑셀에서 날짜와 시간 계산하는 법 image [레벨:30]아별 2008-06-27 26420
70 엑셀일반 [펌] sumproduct 함수를 이용한 다중 조건 계산 imagefile [3] [레벨:30]아별 2008-04-11 24829
69 엑셀일반 외부 파일에 연결된(외부 파일 참조) 셀 찾는 방법입니다. imagefile [4] [레벨:30]아별 2011-02-08 24357
68 엑셀일반 인쇄 설정 팁.. 머리글, 바닥글에 페이지 번호 설정하는 방법 imagefile [2] [레벨:30]아별 2011-08-03 22437
67 엑셀일반 셀 색상별 합계 구하기( GET.CELL( TYPE,REFERENCE) ) imagefile [레벨:30]아별 2008-03-12 21823
66 엑셀일반 엑셀 표시형식에 대해서 (셀서식, 숫자서식) file [1] [레벨:30]아별 2005-05-13 17955
65 엑셀일반 엑셀에서 유용한 단축키들.. [레벨:30]아별 2005-05-23 17397
64 엑셀일반 엑셀에서 줄바꿈 한 셀의 줄간격을 조절하기 [레벨:30]a☆ 2004-11-15 16246
63 엑셀일반 조건부 서식 적용하기 (로또 번호 맞춰 보기) imagefile [4] [레벨:30]아별 2011-04-11 16033
62 엑셀일반 엑셀에서 날짜 데이터 가공/계산/변환 등 종합 선물 세트. file [2] [레벨:30]아별 2008-06-30 15749
61 엑셀일반 두가지 조건을 만족하는 값 찾기 (직급별 연봉) imagefile [레벨:30]아별 2007-01-02 15161
60 엑셀일반 PDF파일을 EXCEL파일로 변환하기 file [1] [레벨:30]아별 2008-10-24 14085
59 엑셀일반 엑셀에서 다른 파일/시트 참조하기/영역설정하기 [레벨:30]a☆ 2004-10-15 13080
58 엑셀일반 열 방향의 데이터를 행방향 데이터로.. 데이터베이스(DB)형태로 변환하기.. imagefile [2] [레벨:30]아별 2008-08-20 12628
57 엑셀일반 [ XML ] 엑셀로 XML 데이터 다루기.. file [2] [레벨:30]아별 2011-12-26 12430
56 API Win32 API 를 공부하기 시작해봅시당~ 꺄~ >.< file [레벨:30]아별 2009-11-21 12380