내 AppFolder
에 SQLite
파일을 백업하기 위해 Google drive API
을 사용하고 있습니다. 잘 작동합니다. 문제는 모든 백업에서 메모리 크기가 증가했기 때문입니다. 초기 백업 파일 크기는 1KB
이었지만 백업 버튼을 클릭 할 때마다 내 앱 파일의 파일 크기는 AppFolder
증가했습니다. AppFolder
에 파일이 있는지 확인하는 방법은 무엇입니까? 존재하면 내 응용 프로그램 AppFolder
파일의 메모리를 지우는 방법을 누른 다음 AppFolder
에 내 파일 만 백업하십시오. 제발 좀 해결책을 줘. 나는이 문제를 해결하기 위해 2 일 동안 고생했다. 하지만 난 할 수 없어 ..Google 드라이브 API의 숨겨진 앱 데이터 파일 크기를 지우려면 어떻게해야하나요?
업로드하기 전에 파일을 검색하고 삭제하기 위해 검색 쿼리를 추가 할 위치는 어디입니까? 코드를 추가했습니다. 추가 코드 : Bakup 버튼 리스너 :
backupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Drive.DriveApi.newDriveContents(mGoogleApiClient)
.setResultCallback(driveContentsCallback);
}
});
그런 다음 콜백에서,
final private ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback = new
ResultCallback<DriveApi.DriveContentsResult>() {
@Override
public void onResult(DriveApi.DriveContentsResult result) {
if (!result.getStatus().isSuccess()) {
return;
}
final DriveContents driveContents = result.getDriveContents();
new Thread() {
@Override
public void run() {
OutputStream outputStream = driveContents.getOutputStream();
FileInputStream inputStream = null;
File file = changeSQLiteToJSON();
try {
try {
inputStream = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
byte[] buf = new byte[1024];
int bytesRead;
try {
if (inputStream != null) {
while ((bytesRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, bytesRead);
}
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (NullPointerException ex) {
ex.printStackTrace();
} finally {
file.delete();
}
MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle(JSON_NAME)
.setMimeType("text/plain")
.setStarred(true).build();
Drive.DriveApi.getAppFolder(mGoogleApiClient)
.createFile(mGoogleApiClient, changeSet, driveContents)
.setResultCallback(fileCallback);
}
}.start();
}
};
FinalCallBack : 나를 위해
final private ResultCallback<DriveFolder.DriveFileResult> fileCallback = new
ResultCallback<DriveFolder.DriveFileResult>() {
@Override
public void onResult(DriveFolder.DriveFileResult result) {
if (!result.getStatus().isSuccess()) {
return;
}
Toast.makeText(getApplicationContext(), "Created a file with content: " + result.getDriveFile().getDriveId(), Toast.LENGTH_SHORT).show();
}
};
가 먼저 업로드 한 후 이전을 삭제 파일 검색 시도 되세요 새로운 것? https://developers.google.com/drive/android/queries – DaImTo
@DaImTo 파일 검색을 위해 검색어를 추가 할 위치를 안내해 주시겠습니까? 코드를 추가했습니다. –
나는 안드로이드 개발자가 아니기 때문에 물어볼 가장 좋은 사람은 아닐 것이다. 개인적으로 파일 검사를 업로드 한 후 이전 파일을 삭제하는 것이 더 많습니다. 드라이브가 다른 파일과 동일한 이름의 파일을 취급 함을 기억하십시오. – DaImTo