달나라 노트

Google Apps Script : makeCopy (파일 복사하기) 본문

Google Apps Script

Google Apps Script : makeCopy (파일 복사하기)

CosmosProject 2022. 11. 21. 21:35
728x90
반응형

 

 

 

makeCopy() method는 특정 파일을 어떠한 folder 안에 복사하는 기능을 제공합니다.

 

 

Syntax

File.makeCopy(name, folder_object)

 

사용법은 위와 같습니다.

makeCopy() method는 기본적으로 File 객체에 적용할 수 있습니다.

 

name = 복사되어 생성될 파일의 이름입니다.

 

folder_object = 복사본을 담을 folder의 객체입니다.

 

 

 

 

 

이제 예시를 볼텐데 이 예시에서는 File ID와 Folder ID를 이용합니다.

File ID와 Folder ID를 알기 위해서는 아래 포스트 참고하시면 됩니다.

 

Folder ID 얻기 = https://cosmosproject.tistory.com/704

File ID 얻기 = https://cosmosproject.tistory.com/705

 

 

 

 

 

먼저 제 Google Drive에는 folder_1이라는 이름의 폴더와 my_test라는 스프레드시트 파일이 있습니다.

여기서 저는 m

 

 

my_test에는 Sheet1 이라는 시트가 하나 있으며 Sheet1에는 위처럼 데이터가 입력되어있습니다.

 

 

 

 

그리고 folder_1은 위처럼 현재 비어있습니다. 아무 파일도 없죠.

 

 

 

my_test -> ID = 1bN5ke7FvEPAC2ladE3l_yUvJ5_x_rgGehE5Kgj2k

folder_1 -> ID = 1BWIeYm0qs6ogyZAVNdJvl_JRdEBUwQ

그리고 my_test 파일과 folder_1 폴더의 ID는 위와 같습니다.

 

 

 

function myFunction() {
  var file = DriveApp.getFileById('1bN5ke7FvEPAC2ladE3l_yUvJ5_x_rgGehE5Kgj2k');
  var folder = DriveApp.getFolderById('1BWIeYm0qs6ogyZAVNdJvl_JRdEBUwQ');

  file.makeCopy('copied_file', folder);
}

 

- var file = DriveApp.getFileById('1bN5ke7FvEPAC2ladE3l_yUvJ5_x_rgGehE5Kgj2k');

- var folder = DriveApp.getFolderById('1BWIeYm0qs6ogyZAVNdJvl_JRdEBUwQ');

일단 Copy & Paste 과정은 모두 파일 객체와 폴더 객체가 필요합니다.

따라서 위처럼 먼저 file, folder 객체를 생성합니다.

 

 

- file.makeCopy('copied_file', folder);

그리고 이 부분이 바로 file 객체를 Copy하는 부분입니다.

file 객체에 makeCopy() method를 적용했다는 것은 file객체에 있는 파일의 복사본을 만들겠다는 의미죠.

 

그리고 복사본으로 생성될 파일의 이름은 copied_file 입니다.

 

또한 복사본이 저장될 위치는 folder 객체 안에 저장됩니다.

folder 객체는 folder_1이라는 이름의 폴더라고했죠.

 

 

 

 

위 코드를 실행하고 folder_1으로 들어가봅시다.

 

 

비어있던 folder_1에 copied_file이라는 파일이 생성되었습니다.

 

파일 전체를 복사한 것이기 때문에 copied_file을 열어보면 Sheet1 하나가 존재하는 것과 1, 2, 3이라는 값이 입력된 것까지 완전히 동일합니다.

 

 

 

 

위 코드를 여러 번 실행하면 위처럼 copied_file이라는 파일이 여러 번 복사됩니다.

이름이 똑같아도 위 파일들은 모두 다른 ID를 가지고 있으며 심지어 원본 파일인 my_test와도 다른 ID를 가지고 있게 됩니다.

 

 

 

 

 

 

728x90
반응형
Comments