2013-01-16 7 views
8

Mam plik bazy danych, który znajduje się na sdcard, a teraz, gdy pobierany jest nowy plik bazy danych, potrzebuję go do zastąpienia starego zamiast zmiany nazwy to jest tutaj jest mój kod pobierania. Kod pobierania działa idealnie.W jaki sposób mogę spowodować, że menedżer pobierania zastąpi istniejący plik zamiast zmieniać nazwę pliku w Androidzie

public void startDownload() { 
     pDialog = new ProgressDialog(this); 
     pDialog.setMessage("Downloading Database. Please wait..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setMax(100); 
     pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
     pDialog.setCancelable(false); 

    Uri uri=Uri.parse(file_url); 

    String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    File ADirectory = new File(baseDir +"/test"); 
    ADirectory.mkdirs(); 

    lastDownload= 
     mgr.enqueue(new DownloadManager.Request(uri) 
        .setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | 
              DownloadManager.Request.NETWORK_MOBILE) 
        .setAllowedOverRoaming(false) 
        .setTitle(" Database File") 
        .setDescription("Please wait....test Database downloading.") 
        .setDestinationInExternalPublicDir("/test", "/testing")); 

    pDialog.show(); 
    //v.setEnabled(false); 
    // findViewById(R.id.query).setEnabled(true); 
    } 

Odpowiedz

10

przy przesyłaniu pliku do menedżera pobierania sprawdź, czy plik już istnieje. następnie usuń go.

private boolean isFileExists(String filename){ 

    File folder1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + filename); 
    return folder1.exists(); 


} 

private boolean deleteFile(String filename){ 

    File folder1 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + filename); 
    return folder1.delete(); 


} 
Powiązane problemy