Query per l'elenco dei file e delle cartelle nella directory principale
-
13-12-2019 - |
Domanda
Vorrei ottenere un elenco di file e cartelle nella directory principale senza dover ordinare tutti i file.C'è una query che farebbe questo?
Soluzione
La cartella principale può anche essere indirizzata con un alias speciale denominato "root", in modo da poter ottenere tutti i file e le cartelle nella root con la seguente query:
https://www.googleapis.com/drive/v2/files?q='root' in parents
.
Ricordarsi di sfuggire all'URL se non si utilizza una delle librerie del client (si prendono automaticamente cura di esso).
Per maggiori dettagli sulla lingua di ricerca della query, controlla https://developers.google.com/Drive/Search-Parametrers
Altri suggerimenti
Questo codice visualizzerà tutti i file e la cartella della Root Directory .Basta copiare e incollare questo codice e otterrai tutto il file e la cartella della root.
List<File> result = new ArrayList<File>();
Files.List request = null;
try {
request = mService.files().list();
FileList files = request.setQ("'root' in parents and trashed=false").execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
}
catch (IOException e)
{
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
//Print out all the files and folder of root Directory
for(File f:result)
{
System.out.println("recvd data are: "+f.getTitle());
}
. Google Drive V3 Riferimento La documentazione aiuta a creare oggetto driveclient.
Esegui questo metodo sotto nel thread di sfondo (Android).
Nota: richiesta del permesso di ambito richiesto "DrivesCopes.Drive"
protected String[] getListChildren(String parentId) throws Exception {
String[] children = null;
parentId = parentId == null ? "root" : parentId;
String fileQuery = "'" + parentId + "' in parents and trashed=false";
FileList files = driveService.files().list().setQ(fileQuery).execute();
List<String> fileNames = new ArrayList<String>();
for (File file : files.getFiles()) {
fileNames.add(file.getName());
}
children = fileNames.toArray(new String[0]);
return children;
}
.