Q&A

  • 파일 및 폴더 이동 관련
특정 디렉토리를 이동시키고려고 하는데 잘 안되네요. chdir이 아니라 디렉토리 move 기능이요..



예를 들어서

c:tempolda를 c:tempnew로 옮기려구 하는데 a라는 디렉토리가 존재하면 덮어 쓰고 존재하지 않으면 새로 a라는 디렉토리를 만들고 a라는 디렉토리 밑에 존재하는 파일을 모두 옮기고 싶어요.

a라는 디렉토리 밑에는 파일만 있는게 아니라 서브 디렉토리가 또 존재할 수도 있구요.. 그 서브디렉토리도 몽땅 옮겨야되구요..





a라는 디렉토리 밑에 파일들만 존재하면 대충 검사해서 a디렉토리 create하고

movefile이던가??? 함수 써서 이동시키고 하면 될 것도 같은데..

그 안에 서브 디렉토리가 존재할때가 잘 안되네요.

서브디렉토리가 몇단계까지 내려갈지를 모르기 때문에 그걸 체크하기가..

일일이 루프 돌려서 디렉토리인지 파일인지를 체크해서 해야 하는지...

그런 방법으로 하려다가 좀 무식(?)한 방법인듯 싶어서 혹시 간단한 방법 혹은 제가 못찾은 함수가 있는지 좀 알려주세요.



1  COMMENTS
  • Profile
    최용일 2001.04.26 05:44
    안녕하세요. 최용일입니다.



    서브디렉토리가 있다면 재귀호출을 이용해서 그 서브디렉토리까지 이동을 시켜야 되겠죠.



    좀더 쉽게 하실려면 윈도탐색기에서 파일이동할때 쓰이는 SHFileOperation이라는 API함수를 이용하세요. ShellAPI.pas유닛에 있습니다. 델파이헬프와 MSDN에 함수설명이 있습니다. 여기 팁모아/Q&A같은데도 찾아보세요.



    ^^ 항상 즐코하세요.



    sky wrote:

    > 특정 디렉토리를 이동시키고려고 하는데 잘 안되네요. chdir이 아니라 디렉토리 move 기능이요..

    >

    > 예를 들어서

    > c:tempolda를 c:tempnew로 옮기려구 하는데 a라는 디렉토리가 존재하면 덮어 쓰고 존재하지 않으면 새로 a라는 디렉토리를 만들고 a라는 디렉토리 밑에 존재하는 파일을 모두 옮기고 싶어요.

    > a라는 디렉토리 밑에는 파일만 있는게 아니라 서브 디렉토리가 또 존재할 수도 있구요.. 그 서브디렉토리도 몽땅 옮겨야되구요..

    >

    >

    > a라는 디렉토리 밑에 파일들만 존재하면 대충 검사해서 a디렉토리 create하고

    > movefile이던가??? 함수 써서 이동시키고 하면 될 것도 같은데..

    > 그 안에 서브 디렉토리가 존재할때가 잘 안되네요.

    > 서브디렉토리가 몇단계까지 내려갈지를 모르기 때문에 그걸 체크하기가..

    > 일일이 루프 돌려서 디렉토리인지 파일인지를 체크해서 해야 하는지...

    > 그런 방법으로 하려다가 좀 무식(?)한 방법인듯 싶어서 혹시 간단한 방법 혹은 제가 못찾은 함수가 있는지 좀 알려주세요.

    >