2013-02-10 53 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