Question

J'ai une feuille de calcul qui est dans une structure de dossiers partagés.Cette structure de dossiers partagés est partagé entre 3 à 9 personnes à un moment donné.Maintenant, la structure de dossier lui-même est constante sur tout le peuple de Google Drive.Mais la "racine" de la structure peut-être placé différemment selon la personne préférence.(J'espère que cela a du sens.)

Exemple:

Folder that is shared: RootFolder
Folder structure of RootFolder: RootFolder>First_Level_Folder>Second_Level_Folder>Third_Level_Folder
Spreadsheet that this question pertains to: SS_
Where SS_ resides in: Second_Level_Folder
People that are collaborating: P1 P2 P3 P4 P5

Maintenant, RootFolder et tout son contenu sont partagés parmi le peuple.Ils peuvent placer des RootFolder (Partagé) n'importe où dans leur Google Lecteurs.

Exemple:

P1: P1Root>P1First_Folder>RootFolder
P2: P2Root>RootFolder
P3: P3Root>P3First_Folder>P3Second_Folder>RootFolder
P4: P4Root>P4First_Folder>RootFolder

Donc, si un script est attaché à SS_ et il est supposé "chercher une autre feuille de calcul" dans le même dossier que SS_, j'ai besoin de connaître le chemin du dossier complet de SS_.Le chemin de ce dossier sera unique pour les différentes personnes.(P1, P2, P3, etc.)

Donc ma question est, puis-je trouver le chemin d'accès au dossier de SS_ l'aide d'un script..?De cette façon, chaque fois qu'une personne exécute le script, le chemin va être le "bon" pour eux et le reste du processus ne sera pas entravée?

J'ai essayé de regarder pour un getFolderPath(spreadsheet) type de fonction, mais pas eu de chance.

Était-ce utile?

La solution

Vous n'avez pas besoin de le chemin du dossier complet si vous avez juste besoin de rechercher sur le dossier parent de la feuille de calcul actuelle.

Il est important de noter qu'un fichier sur Google Drive peut "être" de plusieurs dossiers.Donc à déterminer le chemin du dossier complet n'est pas quelque chose d'absolu, même pour un seul utilisateur.Même les dossiers peuvent être à l'intérieur de multiples dossiers et, bien que je n'ai pas testé, je pense que vous pouvez demander à un parent, à l'intérieur d'un dossier enfant.Par conséquent, si vous essayez d'obtenir le chemin d'accès complet vous pouvez vous retrouver dans une boucle sans fin si vous ne faites pas attention à détecter cette cyclique de la situation.

Voici comment vous obtenez le parent immédiat dossiers de l'actuel spreadsheeet:

function logParents() {
  var ss = SpreadsheetApp.getActive(); //current spreadsheet
  var directParents = DriveApp.getFileById(ss.getId()).getParents();
  while( directParents.hasNext() )
    Logger.log(directParents.next().getName());
}

Sur le code ci-dessus, je suis juste de la connexion la chaque parent nom (si il n'y a plus d'un), mais de rechercher à l'intérieur de chaque parent, vous avez juste à appeler searchFiles au lieu de getName.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top