전체 : 4,150,784 명
어제 : 0 명
오늘 : 0 명

경로를 읽어서 해당경로가 존재하지 않으면 폴더 생성하기

루카스 | 2011.12.09 22:26 | 조회 4617

짧은 지식이지만, 한번 나누어보고자 올려봅니다. ^^



'해당 디렉터리가 있는지 여부를 검사

Function dhGetDir(strdir As String) As Boolean

On Error GoTo e1

'dir함수를 이용해 해당 디렉터리가 있는지 여부를 검사합니다

'만약 디렉터리가 존재하지 않는다면 길이가 0일 것이므로 Len함수를 이용해

'길이를 검사해 1보다 크다면 디렉터리가 존재하는 것입니다

'dhGetDir = (LenB(Dir(strdir, vbDirectory)) >= 1)

dhGetDir = (LenB(Dir(strdir, vbDirectory)) <> 0)

Exit Function

e1:

End Function



'폴더가 존재하는지 체크후 없으면 계속 생성

Public Function make_folders(inPath As String) As String

Dim split_str() As String

Dim strTemp As String

Dim p As String

Dim i As Integer

'p = myPathSeparator

p = ""

strTemp = ""

split_str = Split(inPath, p)

If Not dhGetDir(split_str(0)) Then

strTemp = App.path & p

Else

strTemp = split_str(0) & p

End If

For i = 1 To UBound(split_str)

If split_str(i) = "" Then

make_folders = strTemp '& p

Exit Function

End If

strTemp = strTemp & split_str(i) & p

If Not dhGetDir(strTemp) Then

MkDir strTemp

End If

Next i

make_folders = strTemp '& p

End Function



dhGetDir은 흔한방법으로 경로가 존재하는지 검사하는 것이구요(인터넷에서 긁어온거),
make_folders는 이를 이용하여, pathSeparator 단위마다 계속 검사해서 새 폴더를 만들어주는 함수입니다.
자동으로 여러단계의 폴더속에 파일을 저장하고자할때 편하죠.

대충 만든거지만(딱히 저거보다 잘 만들 자신도 없지만),
필요하신분들께 도움되길 바랍니다. ^^

---------------------------------------------------------------------

약간 수정합니다.
'myPathSeparator'란 것은 일반상수가 아니라, 제가 상수화 시켜놓은 변수라서,
""으로 수정합니다.(일반상수로 저런게 있을줄 알았는데, 초보라 그런지 도저히 못찾겠더군요. ㅠㅠ)
제가 쓰던거 긁어올렸더니 쓸데없는 군더더기도 보이네요. ㅠㅠ

myPathSeparator의 변수인 p를 주석처리한게 여럿 보이는 이유는,
좀 애매한 부분이 있어서 계속 수정하다가 그렇게 된겁니다.

일단 실용도에서는 "C:temp"와 "C:\temp"는 동일합니다.
근데 이게 계속 중첩되다보면 꼬이는게 있어서 넣었다 뺐다하다가 주석처리한겁니다.
제가 계속 쓰던 구문이므로, 경로 구분자 문제만 수정하고,
그대로 쓰시면 제대로 경로 생성될겁니다. ^^

twitter facebook me2day 요즘
감사합니다

감사합니다    

12.11 09:47 | 곰탱이_님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
그대로 소스 복사해가셨으면 아마 안될겁니다.부디 다시 오셔서 수정한걸 해..

그대로 소스 복사해가셨으면 아마 안될겁니다.

부디 다시 오셔서 수정한걸 해보셨으면 좋겠네요. ^^


12.11 15:23 | 루카스님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
경로에 가 맨 뒤에 있으면 를 추가하지 않도록 하면 될것같긴 한데경로..

경로에 가 맨 뒤에 있으면 를 추가하지 않도록 하면 될것같긴 한데

경로 가져온다음에 left쓰면 되겠네요.

01.10 14:39 | losezip님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
감사요
감사요
12.23 01:41 | kane0202님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
강의 잘봣습니다..
강의 잘봣습니다..
01.23 09:19 | qoaldr님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
감사합니다
감사합니다
02.05 10:26 | 한수아래님 | 신고 | 수정 | 삭제
댓글 0
입력상자 늘리기
댓글쓰기 - 로그인한 후 댓글작성권한이 있을 경우 이용하실 수 있습니다.

비밀번호 확인

댓글 등록시에 입력했던 비밀번호를 입력해 주세요.
72개(1/4페이지)
rss
비주얼베이직
번호 제목 작성자 작성일 조회
>> 경로를 읽어서 해당경로가 존재하지 않으면 폴더 생성하기[6] 루카스 2011.12.09 4618
71 [비베 6][TIP] 주석을 여러줄을 써보자[7] qwqw1312 2011.09.01 6752
70 [비베 6]if문을 이용하여 자신만의 아이디, 비밀번호 지정사진[5] qwqw1312 2011.09.01 5655
69 [비베 2010]폼 투명도 바꾸는 트랙바!!첨부파일[12] kchdully 2010.02.13 6333
68 [비베 2008][TIP] ListView Item 추가 퍼포먼스 향상.첨부파일[7] Juma 2009.09.27 7468
67 [비베 2008][TIP] Process 클래스를 이용한 간단한 연결 프로그램 실행.[2] Juma 2009.09.27 6121
66 [비베 2008]IMessage Filter를 상속하여 어플리케이션 단위의 메시지 후킹.첨부파일[3] Juma 2009.09.27 6658
65 [비베 2008]경로 탐색.사진첨부파일[3] Juma 2009.09.27 5635
64 [비베 6][크리스의 비베 강좌] -01- 변수 선언[12] 크리스Kof 2007.12.10 6348
63 [비베 6]비주얼 베이직 기초동영상강좌1부터~20첨부파일[23] Нyan™ 2007.12.03 12925
62 [비베 6]비주얼 베이직 6 SP6 개발용사진첨부파일[26] COOLSOFT 2007.11.24 7506
61 [비베 6]비주얼 베이직 설치하기사진첨부파일[10] COOLSOFT 2007.10.27 9406
60 [비베 6]텍스트 상자 엔터키로 다음텍스트로 이동하기[2] 진진 2008.03.26 6019
59 [비베 6]반투명 처리 퍼옴[4] 진진 2008.03.26 6070
58 [비베 6]프로그램을 감지하여 강제 종료[7] COOLSOFT 2008.02.27 6343
57 [비베 6]VB실습강의(기초부터-김석수)첨부파일[26] 외눈박이™ 2008.01.24 8671
56 [비베 6][크리스의 비베 강좌] -03- 조건문(IF)[3] 크리스Kof 2008.01.12 5631
55 [비베 6]파일의 유무를 확인해보자 ! PathFileExists API ![4] yrisiku 2008.01.05 6081
54 [비베 6]변수의 데이터형에 대해 알아봅시다 :)사진첨부파일[2] yrisiku 2008.01.05 6852
53 [비베 6]Tip) 사용자 정의 프로시저/함수를 만들떄, 선택적 인수를 만들어보자 ![3] yrisiku 2008.01.05 7756
처음페이지이전 10 페이지1234다음 10 페이지마지막페이지