2013-01-16 10 views
8

Ho un file di database che si trova sulla sdcard e ora quando viene scaricato un nuovo file di database ho bisogno di sovrascrivere quello vecchio invece di ridenominarlo it ecco il mio codice di download. Il codice di download funziona perfettamente.Come posso fare che il gestore di download sovrascriva un file esistente invece di rinominare il file in android

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); 
    } 

risposta

10

quando si invia il file al gestore di download verificare se il file esiste già. quindi cancellalo.

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(); 


} 
Problemi correlati