2013-07-18 5 views
0

드라이브 빠른 시작 : Java에서 드라이브 앱 실행 예제는 파일 업로드에 유용합니다. java를 사용하여 Gdrive에서 로컬 시스템으로 파일을 다운로드하고 싶습니다. 다운로드를 들어 그들은 내가 입력을 줄 수있는 방법을 방법 자바를 사용하여 Gdrive에서 로컬 시스템으로 파일을 다운로드하십시오.

private static InputStream downloadFile(Drive service, File file) { 
    if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) { 
     try { 
     HttpResponse resp = 
      service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl())).execute(); 
     return resp.getContent(); 
     } catch (IOException e) { 
     // An error occurred. 
     e.printStackTrace(); 
     return null; 
     } 
    } else { 
     // The file doesn't have any content stored on Drive. 
     return null; 
    } 
} 

위의 방법

, 주어진 ? 그리고 내가 입력을주는 곳에서? 누구나 빠른 시작 업로드 클래스와 같은 다운로드를위한 완전한 코드를 제공 할 수 있습니까?

어떤 도움을 주시면 감사하겠습니다.

답변

0

당신이 구글 API를 운전하고 HTTP GET 요청을 보낼 수 있습니다, 당신은이 튜토리얼

을 볼 수 있습니다

https://developers.google.com/drive/manage-downloads

+0

답장을 보내 주셔서 감사합니다. 내 질문은 입력은 무엇입니까 params Drive 및 File downloadFile 메서드 (드라이브 서비스, 파일 파일)에 대해 제공해야합니다. – user164076

+0

어떤 API를 드라이브에 사용하나요? 이 API에 대한 문서를 읽으면 도움이 될 것입니다. –

0

감사 하난는 retrieveAllFiles() 나는 모든 직접 문서를 나열 할 수 있습니다를 사용하여 fine.By를 작동 나는 아래 코드를 사용하여 로컬에 검색된 문서를 저장했습니다. 올바른 방법으로 다운로드 할 수 있습니다.

for(File f:result){   
     i++; 
     System.out.println("File Name==>"+f.getTitle()); 
     System.out.println("File Id==>"+f.getId()); 
     System.out.println("File ext==>"+f.getFileExtension()); 
     System.out.println("File size==>"+f.getFileSize()); 
InputStream in = downloadFile(service,f); 
     byte b[] = new byte[in.available()]; 
     in.read(b); 
     java.io.File ff = new java.io.File("/home/test/Desktop/gdocs/"+f.getTitle()); 
     FileOutputStream fout = new FileOutputStream(ff); 
     fout.write(b); 
     fout.close(); 
} 

모든 문서를 로컬에 저장합니다. 텍스트 (.txt) 파일이 로컬에서 제대로 열리지 만 이미지 파일 또는 pdf 파일이 제대로 열리지 않습니다. 파일 손상과 같은 오류 메시지가 나타납니다. 이미지 나 pdf 문서에는 콘텐츠가없고 저장할 수있는 콘텐츠가 없습니다. 어떤 제안이든지

관련 문제