private File searchFile( String fileName, String parentId ) throws Exception { File file = null; StringBuffer fileQuery = new StringBuffer(); fileQuery.append( "name = '" + fileName + "'" ); if ( parentId != null ) { fileQuery.append( " and '" + parentId + "' in parents and trashed=false" ); } FileList fileList = driveService.files().list().setQ( fileQuery.toString() ).execute(); if ( !fileList.getFiles().isEmpty() ) { file = fileList.getFiles().get( 0 ); } return file; }
protected String[] doListChildren() throws Exception { String[] children = null; if ( isFolder() ) { id = id == null ? "root" : id; String fileQuery = "'" + id + "' 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; }
fileList = request.execute(); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails();
LOG.debug("[putResource] `{}` Exists in `{}` ? with `{}`.", parameters.getResourceName(), parameters.getDestinationFolderId(), fileRequest.getQ()); FileList existingFiles = fileRequest.execute(); if (existingFiles.getFiles().size() > 1) { throw new IOException(messages.getMessage("error.file.more.than.one", parameters.getResourceName()));
private boolean processFolder() throws IOException { if (folderId == null && !subFolders.isEmpty()) { folderId = subFolders.get(0); subFolders.remove(0); request.setQ(format(query, folderId)); LOG.debug("query = {} {}.", query, folderId); } searchResults.clear(); FileList files = request.execute(); for (File file : files.getFiles()) { if (canAddSubFolder(file.getMimeType())) { subFolders.add(file.getId()); } if (canAddFile(file.getMimeType())) { searchResults.add(file); result.totalCount++; } } request.setPageToken(files.getNextPageToken()); searchCount = searchResults.size(); // finished for folderId if (StringUtils.isEmpty(request.getPageToken()) || searchCount == 0) { folderId = null; } return searchCount > 0; }
/** * @param sourceFolderId source folder ID * @param destinationFolderId folder ID where to copy the sourceFolderId's content * @param newName folder name to assign * @return created folder ID * @throws IOException when operation fails */ public String copyFolder(String sourceFolderId, String destinationFolderId, String newName) throws IOException { LOG.debug("[copyFolder] sourceFolderId: {}; destinationFolderId: {}; newName: {}", sourceFolderId, destinationFolderId, newName); // create a new folder String newFolderId = createFolder(destinationFolderId, newName); // Make a recursive copy of all files/folders inside the source folder String query = format(Q_IN_PARENTS, sourceFolderId) + Q_AND + Q_NOT_TRASHED; FileList originals = drive.files().list().setQ(query).execute(); LOG.debug("[copyFolder] Searching for copy {}", query); for (File file : originals.getFiles()) { if (file.getMimeType().equals(MIME_TYPE_FOLDER)) { copyFolder(file.getId(), newFolderId, file.getName()); } else { copyFile(file.getId(), newFolderId, file.getName(), false); } } return newFolderId; }
public List<File> listChildren(String parentId) { List<File> resultList = new LinkedList<File>(); Drive drive = driveFactory.getDrive(this.credential); try { Drive.Files.List request = drive.files().list().setFields("nextPageToken, files"); request.setQ("trashed = false and '" + parentId + "' in parents"); request.setPageSize(1000); LOGGER.log(Level.FINE, "Listing children of folder " + parentId + "."); do { FileList fileList = executeWithRetry(options, () -> request.execute()); List<File> items = fileList.getFiles(); resultList.addAll(items); request.setPageToken(fileList.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); if (LOGGER.isLoggable(Level.FINE)) { for (File file : resultList) { LOGGER.log(Level.FINE, "Child of " + parentId + ": " + file.getId() + ";" + file.getName() + ";" + file.getMimeType()); } } removeDuplicates(resultList); return resultList; } catch (IOException e) { throw new JDriveSyncException(JDriveSyncException.Reason.IOException, "Failed to execute list request: " + e.getMessage(), e); } }
/** * @param sourceFolderId source folder ID * @param destinationFolderId folder ID where to copy the sourceFolderId's content * @param newName folder name to assign * @return created folder ID * @throws IOException when operation fails */ public String copyFolder(String sourceFolderId, String destinationFolderId, String newName) throws IOException { LOG.debug("[copyFolder] sourceFolderId: {}; destinationFolderId: {}; newName: {}", sourceFolderId, destinationFolderId, newName); // create a new folder String newFolderId = createFolder(destinationFolderId, newName); // Make a recursive copy of all files/folders inside the source folder String query = format(Q_IN_PARENTS, sourceFolderId) + Q_AND + Q_NOT_TRASHED; FileList originals = drive.files().list().setQ(query).execute(); LOG.debug("[copyFolder] Searching for copy {}", query); for (File file : originals.getFiles()) { if (file.getMimeType().equals(MIME_TYPE_FOLDER)) { copyFolder(file.getId(), newFolderId, file.getName()); } else { copyFile(file.getId(), newFolderId, file.getName(), false); } } return newFolderId; }
public List<File> search(Optional<String> title) { Drive drive = driveFactory.getDrive(this.credential); try { List<File> result = new ArrayList<File>(); Drive.Files.List request = drive.files().list(); request.setPageSize(1000); String query = ""; if (title.isPresent()) { query += " name = '" + title.get() + "'"; } if (query.length() > 0) { request.setQ(query); } do { FileList files = executeWithRetry(options, () -> request.execute()); result.addAll(files.getFiles()); request.setPageToken(files.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); return result; } catch (IOException e) { throw new JDriveSyncException(JDriveSyncException.Reason.IOException, "Failed to list all files: " + e.getMessage(), e); } }
public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); // Print the names and IDs for up to 10 files. FileList result = service.files().list() .setPageSize(10) .setFields("nextPageToken, files(id, name)") .execute(); List<File> files = result.getFiles(); if (files == null || files.isEmpty()) { System.out.println("No files found."); } else { System.out.println("Files:"); for (File file : files) { System.out.printf("%s (%s)\n", file.getName(), file.getId()); } } } }
public String getResourceId(String query, String resourceName, String type) throws IOException { LOG.debug("[getResourceId] Searching for {} named {} with `{}`.", type, resourceName, query); FileList files = drive.files().list().setQ(query).execute(); if (files.getFiles().size() > 1) { String errorMsg = messages.getMessage(format("error.%s.more.than.one", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } else if (files.getFiles().isEmpty()) { String errorMsg = messages.getMessage(format("error.%s.inexistant", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } LOG.debug("[getResourceId] Found `{}` [{}].", resourceName, files.getFiles().get(0).getId()); return files.getFiles().get(0).getId(); }
/** * Blocking version of {@link #fetchGameStatesSync()} * * @return game states * @throws IOException */ public Array<String> fetchGameStatesSync() throws IOException { if (!driveApiEnabled) throw new UnsupportedOperationException(); Array<String> games = new Array<String>(); FileList l = GApiGateway.drive.files().list() .setSpaces("appDataFolder") .setFields("files(name)") .execute(); for (File f : l.getFiles()) { games.add(f.getName()); } return games; }
public String getResourceId(String query, String resourceName, String type) throws IOException { LOG.debug("[getResourceId] Searching for {} named {} with `{}`.", type, resourceName, query); FileList files = drive.files().list().setQ(query).execute(); if (files.getFiles().size() > 1) { String errorMsg = messages.getMessage(format("error.%s.more.than.one", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } else if (files.getFiles().isEmpty()) { String errorMsg = messages.getMessage(format("error.%s.inexistant", type), resourceName); LOG.error(errorMsg); throw new IOException(errorMsg); } LOG.debug("[getResourceId] Found `{}` [{}].", resourceName, files.getFiles().get(0).getId()); return files.getFiles().get(0).getId(); }
public List<File> listAll() { Drive drive = driveFactory.getDrive(this.credential); try { List<File> result = new ArrayList<>(); Drive.Files.List request = drive.files().list(); request.setPageSize(1000); do { FileList files = executeWithRetry(options, () -> request.execute()); result.addAll(files.getFiles()); request.setPageToken(files.getNextPageToken()); } while (request.getPageToken() != null && request.getPageToken().length() > 0); return result; } catch (IOException e) { throw new JDriveSyncException(JDriveSyncException.Reason.IOException, "Failed to list all files: " + e.getMessage(), e); } }
private static Stream<File> getFilesInFolder(final Drive driveService, final String parentId) throws IOException { LOGGER.debug("Listing files in folder {}.", parentId); return driveService.files().list() .setQ("'" + parentId + "' in parents and trashed = false") .setFields("nextPageToken, files(" + getFields("mimeType") + ")") .execute() .getFiles() .stream() .peek(f -> LOGGER.debug("Found '{}' ({}) as {}.", f.getName(), f.getMimeType(), f.getId())); }
private File findFileByNameSync(String name) throws IOException { // escape some chars (') see : https://developers.google.com/drive/v3/web/search-parameters#fn1 List<File> files = GApiGateway.drive.files().list().setSpaces("appDataFolder").setQ("name='" + name + "'") .execute().getFiles(); if (files.size() > 1) { throw new GdxRuntimeException("multiple files with name " + name + " exists."); } else if (files.size() < 1) { return null; } else { return files.get(0); } }
private static Stream<File> getFilesInFolder(final Drive driveService, final String parentId) throws IOException { LOGGER.debug("Listing files in folder {}.", parentId); return driveService.files().list() .setQ("'" + parentId + "' in parents and trashed = false") .setFields("nextPageToken, files(" + getFields("mimeType") + ")") .execute() .getFiles() .stream() .peek(f -> LOGGER.debug("Found '{}' ({}) as {}.", f.getName(), f.getMimeType(), f.getId())); }
ArrayList<BlobbyStorageContainerResource> folders = new ArrayList<>(); FileList fileList = driveListOperation.execute();