파일을 복사하고 이름을 바꾸고 루트 폴더에 두 번째 복사본이 없어도 해당 복사본을 특정 폴더로 이동할 수 있습니까? 복사, 이름 바꾸기, 다른 순서로 이동하는 조합을 사용했지만 매번 이름이 변경된 파일의 루트 드라이브가 계속 남아 있습니다. 이것이 기본값입니까? 적어도 말하기는 짜증나게합니다.파일을 Google Apps Script의 폴더로 복사 및 이동하려면 어떻게해야합니까?
답변
그래, Google이 이동 방법을 제공하지 않는 것은 조금 이상합니다. 그러나 드라이브가 작동하는 방식과 파일이 여러 폴더에 속할 수 있다는 점을 감안하면 자신 만의 움직임을 작성하는 것이 좋습니다.
// Moves a file to a new folder by removing all current
// parent folders and then adding the new one.
function moveFileTo(fileObj, folderObj) {
// Attempt the move only if folderObj has a value.
// Otherwise, the file will be left without a folder.
// (Lost files can be found in the "All items" area.)
if (folderObj) {
var folders = fileObj.getParents();
for (var i = 0; i < folders.length; i++) {
fileObj.removeFromFolder(folders[i]);
}
fileObj.addToFolder(folderObj);
return true;
}
return false;
}
는 기본적으로 다음과 같이 사용 :
var file = DocsList.getFileById(fileID);
var folder = DocsList.getFolder('Some folder name');
// Make a backup copy.
var file2 = file.makeCopy('BACKUP ' + Utilities.formatDate(new Date(), Session.getTimeZone(), 'yyyy-MM-dd') + '.' + file.getName());
// Move the backup file.
if (moveFileTo(file2, folder)) {
...
내가이 간단한 함수가 정확히 있음을 알아 두셔야합니다 ... 간단한 여기에 내가 쓴 간단한 이동 기능입니다. 소유 또는 공유되는 모든 상위 폴더를 샅샅이 뒤지는 것은 괜찮다고 가정합니다. 조심하지 않으면 다양한 사용자의 다양한 공유 폴더에있는 공유 파일에서 예기치 않은 결과가 발생할 수 있습니다. 그러나이 스크립트의 사용자와 공유되지 않은 상위 폴더를 제거하는 것은 좋지 않습니다. 아무튼, 일을 더 잘 제어 할 수있는 확실한 대안은 "from"폴더와 "to"폴더를 지정하는 것입니다.
편집 : 원래 질문 (수정 전)을 살펴본 후 파일 및 폴더가 Google 드라이브에서 작동하는 방식에 대해 혼란을 느꼈습니다.
루트 폴더에 새 파일이있는 파일의 복사본을 만들 때이 새 파일을 다른 폴더에 추가 할 때이 파일에 새 복사본을 만들지 않고 레이블을 붙이는 것으로 간주해야합니다 .
실제로 루트와 다른 폴더에서 파일을 볼 수 있지만 은 두 개의 다른 레이블이있는 매우 동일한 파일입니다! (삭제를 시도하고 두 곳에서 삭제 된 것을 확인했기 때문에)
새 파일을 폴더에서 가져오고 제거 할 루트에 표시되지 않는 유일한 방법 "루트 레이블".
Google 드라이브의 작동 방식입니다. 로컬 하드 디스크 스토리지와 비교할 때 논리적입니다. 동일한 논리 드라이브에서 한 폴더에서 다른 폴더로 파일을 이동할 때 데이터 (예 : 디스크의 바이트)를 이동하지 않고 단순히 이 파일이지도상의 다른 곳에있는 디스크 운영 체제.
Google 드라이브는 옮길 수는 없지만 원하는만큼 많은 라벨을 붙일 수있는 수십억 개의 파일이있는 대용량 디스크 장치입니다 (가장 중요한 라벨은 Google 계정 임). 신분증!)
그리고 경우에이 레이블을 재생하는 것은 그냥이 간단한 기능을 시도 설명합니다 : 당신이 얻을 수있는 folder
객체 ANF file
객체 :
function copyAndMove(file,folder){
var newfile=file.makeCopy('copy of '+file.getName());// here you can define the copy name the way you want...
newfile.addToFolder(folder);// add the copy to the folder
newfile.removeFromFolder(DocsList.getRootFolder());// and remove it from your root folder
}
그것이 바로이 개 필요한 매개 변수를 사용하여 테스트하기를 여러 가지 방법 중에서 DocsList documentation을 참조하십시오. 필요한 경우 얻을 수있는 방법에 대한 자세한 내용은 여기를 참조하십시오 .-)
그 대답이 저를 도왔습니다. 도대체 무슨 일이 벌어지고 왜 두 권이 있는지 궁금합니다. 나는 이런 종류의 일을하기 위해 학교에 갔으면 좋겠다. – zachdyer
google apps 스크립트의 새 버전에서는 작업을 수행하는 데 필요한 모든 것이 다음 :
file.makeCopy("new name", folder);
- 1. google-apps-script의 문자로 증가
- 2. Google Apps Script. * 파일 복사 *
- 3. Google Apps Script의 Usermanager.getUser()에 오류가 발생했습니다.
- 4. Google Apps Script의 scriptdb를 백업하는 방법
- 5. 월 및 연도를 기준으로 적절한 폴더로 파일을 이동하려면 어떻게해야합니까?
- 6. PushBullet Google Apps Script의 SMS JSON 형식
- 7. Google Apps Script의 문서에 대해 '웹에 게시'하시겠습니까?
- 8. Google Apps Script의 URL 단축키가 변경 되었습니까?
- 9. Google Apps Script의 다형 함수 문서
- 10. Google Apps Script의 iOS 뷰포트 관련 문제
- 11. Twitter OAuth Google Apps Script의 'oob'PIN 기반
- 12. XMLHttpRequest Google Apps Script의 매개 변수에 액세스
- 13. Google Apps Script의 기존 메뉴에 항목 추가
- 14. 선택한 파일을 폴더로 복사
- 15. 파일을 cab에서 폴더로 복사
- 16. 파일을 여러 폴더로 복사
- 17. Perl : 특정 파일을 한 폴더에서 다른 폴더로 주기적으로 이동하려면 어떻게해야합니까?
- 18. 하위 보고서를 자신의 폴더로 이동하려면 어떻게해야합니까?
- 19. Netbeans 프로젝트를 다른 폴더로 이동하려면 어떻게해야합니까?
- 20. Google Apps Script의 Google Prediction API 최신 버전을 참조하시기 바랍니다.
- 21. Google Apps Script : 문서를 새 폴더로 자동 복사하는 방법은 무엇인가요?
- 22. Google Apps Script로 데이터 복사
- 23. 다른 스크립트에서 Google Apps Script의 내용을 읽을 수 있습니까?
- 24. Google App Script의 UrlFetch 서비스에서 Google Charts API를 호출하려면 어떻게해야합니까?
- 25. 어떻게 다른 폴더로 파일을 복사
- 26. Google Apps Script의 createFile()이 제대로 작동하지 않습니다.
- 27. google-apps-script의 HTML UI로 스크립트 가져 오기
- 28. 이 Google Apps Script의 실행 시간을 줄이는 방법은 무엇입니까?
- 29. Google Apps Script의 DirectionFinder 객체에 웨이 포인트 추가
- 30. iOS에서 Google Apps Script의 선형 최적화를 사용 하시겠습니까?
'file.makeCopy'를 사용할 때 새로 생성 된 파일이 루트 폴더에 있으므로이'getParents' 자료가 모두 필요하지 않습니다. –
@Sergeinsas 당신은 신선한 사본 만 이동하는이 함수를 작성했다고 가정하고 있습니다. 아무 것도하지 마십시오. – juanitogan
나는 아무 것도 가정하지 않았다 : 당신은 "이것을 이렇게 사용한다 ... 백업 복사본을 만든다 ..."라고 썼다. –