특정 디렉토리를 이동시키고려고 하는데 잘 안되네요. chdir이 아니라 디렉토리 move 기능이요..
예를 들어서
c:tempolda를 c:tempnew로 옮기려구 하는데 a라는 디렉토리가 존재하면 덮어 쓰고 존재하지 않으면 새로 a라는 디렉토리를 만들고 a라는 디렉토리 밑에 존재하는 파일을 모두 옮기고 싶어요.
a라는 디렉토리 밑에는 파일만 있는게 아니라 서브 디렉토리가 또 존재할 수도 있구요.. 그 서브디렉토리도 몽땅 옮겨야되구요..
a라는 디렉토리 밑에 파일들만 존재하면 대충 검사해서 a디렉토리 create하고
movefile이던가??? 함수 써서 이동시키고 하면 될 것도 같은데..
그 안에 서브 디렉토리가 존재할때가 잘 안되네요.
서브디렉토리가 몇단계까지 내려갈지를 모르기 때문에 그걸 체크하기가..
일일이 루프 돌려서 디렉토리인지 파일인지를 체크해서 해야 하는지...
그런 방법으로 하려다가 좀 무식(?)한 방법인듯 싶어서 혹시 간단한 방법 혹은 제가 못찾은 함수가 있는지 좀 알려주세요.
서브디렉토리가 있다면 재귀호출을 이용해서 그 서브디렉토리까지 이동을 시켜야 되겠죠.
좀더 쉽게 하실려면 윈도탐색기에서 파일이동할때 쓰이는 SHFileOperation이라는 API함수를 이용하세요. ShellAPI.pas유닛에 있습니다. 델파이헬프와 MSDN에 함수설명이 있습니다. 여기 팁모아/Q&A같은데도 찾아보세요.
^^ 항상 즐코하세요.
sky wrote:
> 특정 디렉토리를 이동시키고려고 하는데 잘 안되네요. chdir이 아니라 디렉토리 move 기능이요..
>
> 예를 들어서
> c:tempolda를 c:tempnew로 옮기려구 하는데 a라는 디렉토리가 존재하면 덮어 쓰고 존재하지 않으면 새로 a라는 디렉토리를 만들고 a라는 디렉토리 밑에 존재하는 파일을 모두 옮기고 싶어요.
> a라는 디렉토리 밑에는 파일만 있는게 아니라 서브 디렉토리가 또 존재할 수도 있구요.. 그 서브디렉토리도 몽땅 옮겨야되구요..
>
>
> a라는 디렉토리 밑에 파일들만 존재하면 대충 검사해서 a디렉토리 create하고
> movefile이던가??? 함수 써서 이동시키고 하면 될 것도 같은데..
> 그 안에 서브 디렉토리가 존재할때가 잘 안되네요.
> 서브디렉토리가 몇단계까지 내려갈지를 모르기 때문에 그걸 체크하기가..
> 일일이 루프 돌려서 디렉토리인지 파일인지를 체크해서 해야 하는지...
> 그런 방법으로 하려다가 좀 무식(?)한 방법인듯 싶어서 혹시 간단한 방법 혹은 제가 못찾은 함수가 있는지 좀 알려주세요.
>