2016-09-04 16 views
0

uploadedFile.getName()からgoogle apiを利用する次のコードでNullPointerExceptionが発生します。それを文字列fileNameに変更すると、コードはうまく動作します。GoogleドライブAPIがnullのファイル名を持つファイルを作成する理由

私はNULLポインタが、なぜ私が前にダウンロードしたファイルを呼び出すには、私は、以前のコードでファイル名を設定しているため、この場合の1を取得していますし、ファイルは私が設定した名前でアップロードされていることを確認ではなく、何かを理解
public static void downloadFile(boolean useDirectDownload, File uploadedFile, java.io.File parentDir)throws IOException { 
    OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getName())); 
    DRIVE.files().get(uploadedFile.getId()).executeMediaAndDownloadTo(out); 
} 

。コードの

public static File uploadFile(boolean useDirectUpload, String uploadFilePath, String fileType, String fileName) throws IOException { 

File fileMetadata = new File(); 
fileMetadata.setName(fileName); 
fileMetadata.setMimeType(fileType); 

java.io.File filePath = new java.io.File(uploadFilePath); 
FileContent mediaContent = new FileContent(fileType, filePath); 
return DRIVE.files().create(fileMetadata, mediaContent) 
     .setFields("id") 
     .execute(); 
} 

上記の2セットは、次のステートメントによって返されたファイルは、名前にnullを持っていない理由具体的な質問については、

java.io.File parentDir = P.createDirectory("C:\\DIR");   
File uploadedFile = P.uploadFile(true, "C:\\DIR\AA.pdf", "application/pdf", "BB.pdf"); 
P.downloadFile(true, uploadedFile, parentDir); 

で呼ばれていますか?ドライブサービスのための

return DRIVE.files().create(fileMetadata, mediaContent) 
      .setFields("id") 
      .execute(); 

Mavenの依存関係:

<dependency> 
    <groupId>com.google.apis</groupId> 
    <artifactId>google-api-services-drive</artifactId> 
    <version>v3-rev40-1.22.0</version> 
</dependency> 

答えて

1

理由を次の文で返されるファイル名にnullがありますか?

ファイル名をREST応答に含めるように要求していないためです。 https://developers.google.com/resources/api-libraries/documentation/drive/v3/java/latest/com/google/api/services/drive/Drive.Files.Create.html - あなたは唯一その一つだけがsetFieldsに指定されたので、createメソッドが呼び出されたパーシャルレスポンスの一環としてidを取得している.setFields("id")

2

.setFields("id, name")に変更します。

他のフィールド(name、およびその他の関連フィールドが必要)を追加しようとすると、呼び出しが機能するはずです

関連する問題