2016-08-19 13 views
0

google apps script을 실행하면 다른 Google 시트에서 생성 된 Google 시트의 파일 처리에 문제가 있습니다. 스크립트를 실행하면 새로운 출력 파일이 생성되어 특정 레이블이있는 폴더로 전송됩니다. 목표는 출력 파일을 그룹 드라이브의 특정 폴더에 추가하는 것입니다. 내 문제에 관한 스크립트 및 파일은 모두 그룹 드라이브에 있습니다.Google 드라이브 서비스. 그룹 드라이브 폴더에 파일을 복사했습니다. 파일이 비어 있습니다.

스크립트를 실행할 때 발생합니다. 나는 그룹 드라이브에있는 것과 똑같은 이름의 폴더가 있기 때문에

  1. 파일이 내 개인 Google 드라이브 내에서 생성 (이 스크립트에 대한 내 테스트 환경이었다). 내 드라이브에있는이 파일은 Google 시트에 원하는 모든 출력을 제공합니다. 파일도 내 드라이브의 루트에 추가되었지만 이제는 루트에서 제거됩니다.

  2. 파일이 그룹 드라이브에 생성되었지만 완전히 비어 있습니다. 파일의 이름은 정확하지만 실제 스프레드 시트에는 내용이 없습니다. 여기

출력 파일을 처리하는 스크립트입니다

var sourceFilename = ss.getName(); 
    var splitSourceFilename = sourceFilename.split("LMS"); 
    var targetFilename = splitSourceFilename[0] + "Allowed_Layers_Vx"; 

    // move the new spreadsheet to Allowed Layers Lists folder 
    var folders = DriveApp.getFoldersByName("Allowed Layers Lists"); 
    while (folders.hasNext()) { 
    var folder = folders.next(); 
    var ssNew = SpreadsheetApp.create(targetFilename); 
    var copyFile = DriveApp.getFileById(ssNew.getId()); 
    folder.addFile(copyFile); 
    DriveApp.getRootFolder().removeFile(copyFile); 
    } 

그룹 드라이브에 대한 몇 가지 다른 정보 :

  1. 내가 만들지 않은 그룹 드라이브 . 나와 공유 함
  2. 저는 파일과 스크립트가있는 폴더의 소유자입니다.
  3. 나는이 폴더에있는 모든 파일과 스크립트의 소유자이기도합니다.
  4. 이 그룹 드라이브의 모든 레벨에서 수정 권한이 있습니다.
+1

원본 문서/폴더에 대해 편집기 권한을 올바르게 구성했는지 확인하십시오. 데이터를 새 문서로 복사하는 동안 파일을 휴지통으로 옮기는 것일 수도 있습니다. 또한 현재'Document'를 저장하는 this ['saveAndClose'] (https://developers.google.com/apps-script/reference/document/document#saveandclose) 메소드를 체크해야합니다. – abielita

답변

0

에 대답을 참조 할 수 있도록합니다. 내 자신의 드라이브 내에서 어떤 이유로 다른 폴더에 파일을 추가 할 때 문제가되지 않았지만 스크립트는 해당 파일의 모든 인스턴스를 계속 업데이트합니다. 그러나 그룹 드라이브 내에서 내 루트의 파일 만 업데이트되었습니다 (코드 블록을 스크립트 마지막으로 옮길 때까지).

이유에 대한 설명은 환영합니다.

+1

'var ssNew = SpreadsheetApp.create (targetFilename);'별도의 새 빈 파일을 만듭니다. 반면에 하나의 파일을 여러 폴더에 확실히 추가 할 수 있으며 모든 해당 "파일 인스턴스"는 동일한 파일에 대한 포인터 일 뿐이며 내용은 상위 폴더와 관계없이 동일합니다. 도움이되는 희망. – some1

+0

그래, 고마워. –

+2

@ some1의 설명에 약간의 수정. 폴더는 파일을 가리 키지 않습니다. 예를 들어 Unix 폴더에는 inode 목록이 들어 있습니다. GDrive에서 각 파일에는 상위 폴더 목록이 있으므로 파일은 해당 파일을 가리키는 폴더가 아니라 폴더를 가리 킵니다. – pinoyyid

1

위의 스크립트에는 실제로 "파일 복사본"이 없습니다. 새 파일을 SpreadsheetApp.create(targetFilename)으로 만들고 폴더에 추가합니다.

는 구글 시트의 사본, 당신은 내가 데이터 처리가 발생한 후 스크립트의 끝에 코드 블록을 이동 결국 Google App Script: How do I make copy of spreadsheet and save it to particular folder?

+0

나는 이것을 월요일 fyi (주말에 떨어져)에서 점검 할 것이다. 의견을 보내 주셔서 감사합니다. –

+0

데이터 처리가 끝나면 스크립트 끝 부분으로 코드 블록을 이동했습니다.내 자신의 드라이브 내에서 어떤 이유로 다른 폴더에 파일을 추가 할 때 문제가되지 않았지만 스크립트는 해당 파일의 모든 인스턴스를 계속 업데이트합니다. 그러나 그룹 드라이브 내에서 내 루트의 파일 만 업데이트되었습니다 (코드 블록을 스크립트 마지막으로 옮길 때까지). –

관련 문제