2013-02-10 50 views
0

我有這段代碼。文件複製操作錯誤android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    File srcFolder = new File(Environment.getExternalStorageDirectory() 
      + "/folder/"); 
    File destFolder = new File(
      "/data/data/folder"); 





    Button button1 = (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new OnClickListener() { 



     @Override 
     public void onClick(View v) { 


      ~~~~public void~~~~ copyFolder(srcFolder, destFolder); 
      { 

       if(src.isDirectory()){ 

        //if directory not exists, create it 
        if(!dest.exists()){ 
         dest.mkdir(); 
         Log.i("Status : ", "Directory copied from " 
             + srcFolder + " to " + destFolder); 
        } 

        //list all the directory contents 
        String files[] = src.list(); 

        for (String file : files) { 
         //construct the src and dest file structure 
         File srcFile = new File(src, file); 
         File destFile = new File(dest, file); 
         //recursive copy 
         copyFolder(srcFile,destFile); 
        } 

       }else{ 
        //if file, then copy it 
        //Use bytes stream to support all file types 
        InputStream in = new FileInputStream(src); 
         OutputStream out = new FileOutputStream(dest); 

         byte[] buffer = new byte[1024]; 

         int length; 
         //copy the file content in bytes 
         while ((length = in.read(buffer)) > 0){ 
          out.write(buffer, 0, length); 
         } 

         in.close(); 
         out.close(); 
         Log.i("Status : ","File copied from " + srcFolder + " to " + destFolder); 
       } 
      } 





     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

}

,這讓我在這個地方至極我打上~~~~ ~~~~錯誤。它說令牌上的語法錯誤,錯位的構造有人可以幫助我嗎?

如果你幫我解決這個錯誤,或者給我另一個文件夾複製代碼,我將非常感激!

回答

0

在該行中,您應該調用該函數。並且該函數應該在整個onCreate方法之後構建:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    File srcFolder = new File(Environment.getExternalStorageDirectory() 
      + "/folder/"); 
    File destFolder = new File(
      "/data/data/folder"); 
    Button button1 = (Button) findViewById(R.id.button1); 
    button1.setOnClickListener(new OnClickListener() {  
     @Override 
     public void onClick(View v) { 
      copyFolder(srcFolder, destFolder); 
     } 
    }); 
} 

public void copyFolder(String srcFolder,String destFolder) {  
       if(src.isDirectory()){  
        //if directory not exists, create it 
        if(!dest.exists()){ 
         dest.mkdir(); 
         Log.i("Status : ", "Directory copied from " 
             + srcFolder + " to " + destFolder); 
        } 

        //list all the directory contents 
        String files[] = src.list(); 

        for (String file : files) { 
         //construct the src and dest file structure 
         File srcFile = new File(src, file); 
         File destFile = new File(dest, file); 
         //recursive copy 
         copyFolder(srcFile,destFile); 
        } 

       }else{ 
        //if file, then copy it 
        //Use bytes stream to support all file types 
        InputStream in = new FileInputStream(src); 
         OutputStream out = new FileOutputStream(dest); 

         byte[] buffer = new byte[1024]; 

         int length; 
         //copy the file content in bytes 
         while ((length = in.read(buffer)) > 0){ 
          out.write(buffer, 0, length); 
         } 

         in.close(); 
         out.close(); 
         Log.i("Status : ","File copied from " + srcFolder + " to " + destFolder); 
       } 
      } 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
    } 
} 
0

錯誤是因爲您的onClick方法中有一個方法。

您應該只帶來說明和運行方法,但不能定義新的方法。

解決方案可能是將copyFolder方法定義到您的類中,然後在您的onClick方法中運行它。

+0

好的,我做到了。現在我沒有這個代碼的錯誤。 – 2013-02-10 19:51:19