2013-06-05 5 views
1

DropboxHelper 클래스는 Dropbox에서 다운로드 및 업로드를 처리합니다. 다운로드가 정상적으로 작동하지만 코드가 처음 호출 될 때 dropbox에서 업로드하려고합니다. 다음 줄은 false입니다.보관 용 계정 동기화 API. 처음으로 Dropbox에서 파일을 보지 못했습니다.

if (dropboxFileSystem.isFile(dropboxPath)) { 

} 

false를 반환합니다. 앱에 다시 시도 해보라고 요청하고 이번에는 파일을보고 앱에 업로드합니다. 아래는 클래스에 사용하고있는 코드 중 일부입니다. 디버그 처음

public class DropBoxHelper { 


public DropBoxHelper(Context pContext) { 

     context = pContext; 
     defineVariables(); 

} 

    private void defineVariables() { 

     dropboxAccountManager = DbxAccountManager.getInstance(context.getApplicationContext(), DROPBOX_APP_KEY, DROPBOX_APP_SECRET); 
     dropboxPath = new DbxPath(DbxPath.ROOT, DROPBOX_FILE_NAME); 


    } 

public boolean importFromDropbox() { 

     try { 

      dropboxFileSystem = DbxFileSystem.forAccount(dropboxAccountManager.getLinkedAccount()); 

      if (dropboxFileSystem.isFile(dropboxPath)) { 

       DbxFile databaseFileonDropbox = dropboxFileSystem.open(dropboxPath); 

       try { 

        // Do Copy 

       } finally { 

        Log.i(DEBUG_TAG, "Closing File"); 
        databaseFileonDropbox.close(); 

       } 

} 

복사가 처음으로 실패 이유에 대한 모든 아이디어를 동기화/시작 완료되지 않은 보관 용 API를 incdicate 것으로 보인다. 감사

+0

내가 이해하는지 확인하기 위해 파일 *이 Dropbox에 존재하지만 isFile이 false를 반환한다고 말하는 것입니까? – smarx

답변

4

나는 100 % 확실하지 않다,하지만 난 당신이 파일을 발견하기 전에 서버와 확인 적어도 하나의 동기가 일어난 있도록 dropboxFileSystem.awaitFirstSync()를 사용할 필요가 믿습니다.

대신 dropboxFileSystem.open(...)을 직접 호출하고 파일이 존재하지 않는 경우 발생하는 예외를 처리 할 수도 있습니다.

관련 문제