9.1.2 copyfile문

copyfile문은 디렉토리나 파일의 복사를 요청하는 프로시져입니다.

설명

지정한 원본 경로의 디렉토리, 혹은 파일을 지정한 대상 경로파일명으로 복사합니다.

  • 티치펜던트나 USB 메모리가 아닌 MAIN 모듈 내에서만 수행할 수 있습니다.

  • 대상 경로파일명의 중간 경로의 디렉토리가 존재하지 않으면, 중간 경로까지 만들어줍니다.

  • 대상 디렉토리가 이미 존재하면 삭제 후 복사합니다.

  • 대상 파일이 이미 존재하면 overwrite 합니다.

  • 디렉토리의 서브 디렉토리들도 모두 복사됩니다.

  • 경로파일명은 wildcard('*', '?')도 지원합니다.

  • 용량이 큰 파일이나 디렉토리 전체가 복사될 수도 있기 때문에, 복사 중 대기에 의한 택트 타임 손실이 없도록 백그라운드에서 비동기적으로 수행됩니다. 즉, copyfile 명령문이 수행되면 백그라운드 작업에서 복사를 시작하면서 즉각 다음 명령문의 수행을 진행합니다. 가령, 복사를 요청해놓고 move문들을 실행할 수 있습니다. 복사가 성공적으로 완료 되었는지는 결과변수의 값을 읽어 확인 할 수 있습니다. (즉, 복사가 실패해도 에러나 경고가 발생하지 않습니다.)

  • 하나의 복사나 삭제가 끝나기 전에는 다른 복사나 삭제를 요청할 수 없습니다.

문법

copyfile <결과변수>,<원본 경로파일명>,<대상 경로파일명>

파라미터

항목
의미
기타

결과변수

백그라운드 수행 결과

  • 1: 성공적으로 완료됨.

  • 0: 복사 진행 중.

  • -1: 유효하지 않은 원본 경로파일명.

  • -2: 유효하지 않은 대상 경로파일명.

  • -3: 복사 실패.

  • -6: wildcard 복사 시 전부 실패.

  • -7: wildcard 복사 시 일부 실패.

  • -11: 임시경로 생성 실패.

  • -12: 임시경로로의 복사 실패.

  • -13: 기존 대상경로 클리어 실패.

  • -14: 대상경로 생성 실패.

  • -15: 임시경로에서 대상경로로의 이동 실패.

변수

원본 경로파일명

복사할 디렉토리 경로, 혹은 복사할 파일의 경로파일명

문자열식

대상 경로파일명

'/' 문자로 끝나면 복사될 경로. '/' 문자로 끝나지 않으면 복사를 통해 생성될 경로파일명.

문자열식

사용 예

   var res
   copyfile res,"project/vars","work/vars_1" # vars_1/ 폴더가 생성됨.
   wait res==1,8,*timeout
   copyfile res,"project/vars","work/vars_1/" # vars_1/vars/ 폴더가 생성됨.
   wait res==1,8,*timeout
   copyfile res,"work/clear.job","project/jobs/0005_clear.job"
   wait res==1,4,*timeout
   copyfile res,"work/*_sub.job","project/jobs/" # wildcard
   wait res==1,4,*timeout
   call 5
   end
   *timeout
   print "copyfile failed"
   end

Last updated

Was this helpful?