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; }
.list() .setFields("files/id,files/mimeType,files/modifiedTime,files/size,files/permissions") .setPageSize(pageSize);
@Override public boolean start() throws IOException { /* build query string */ String qTrash = includeTrashedFiles ? "" : Q_AND + Q_NOT_TRASHED; query = Q_IN_PARENTS + ("DIRECTORIES".equals(listModeStr) ? QUERY_MIME_FOLDER : "") + qTrash; request = drive.files().list(); request.setFields(FIELDS_SELECTION); // if (folderAccessMethod.equals(AccessMethod.Id)) { subFolders.add(folderName); } else { subFolders = utils.getFolderIds(folderName, includeTrashedFiles); } LOG.debug("[start] subFolders = {}.", subFolders); if (subFolders.size() == 0) { LOG.warn(messages.getMessage("error.folder.inexistant", folderName)); return false; } if (subFolders.size() > 1) { LOG.warn(messages.getMessage("error.folder.more.than.one", folderName)); } return processFolder(); }
/** * @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; }
@Override public boolean start() throws IOException { /* build query string */ String qTrash = includeTrashedFiles ? "" : Q_AND + Q_NOT_TRASHED; query = Q_IN_PARENTS + ("DIRECTORIES".equals(listModeStr) ? QUERY_MIME_FOLDER : "") + qTrash; request = drive.files().list(); request.setFields(FIELDS_SELECTION); // if (folderAccessMethod.equals(AccessMethod.Id)) { subFolders.add(folderName); } else { subFolders = utils.getFolderIds(folderName, includeTrashedFiles); } LOG.debug("[start] subFolders = {}.", subFolders); if (subFolders.size() == 0) { LOG.warn(messages.getMessage("error.folder.inexistant", folderName)); return false; } if (subFolders.size() > 1) { LOG.warn(messages.getMessage("error.folder.more.than.one", folderName)); } return processFolder(); }
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())); }
throws Exception { Drive driveInterface = getDriveInterface((authData)); List driveListOperation = driveInterface.files().list();
when(files.list()).thenReturn(listRequest); when(listRequest.setFields(anyString())).thenReturn(listRequest); when(listRequest.setPageSize(anyInt())).thenReturn(listRequest);
when(files.list()).thenReturn(listRequest); when(listRequest.setPageSize(anyInt())).thenReturn(listRequest); when(listRequest.setFields(anyString())).thenReturn(listRequest);