0

次のコードでは、 でマークした場所でエラーが発生します~~~~ ~~~~。それは言います:

トークンの構文エラー、構造体の配置ミス

誰でもこれで私を助けることができますか?

このエラーの解決を手伝ってくださるか、別のフォルダ コピー コードを教えていただければ幸いです。

    @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;
    }
}
4

2 に答える 2

0

エラーは、onClick メソッド内にメソッドがあるためです。

指示を出してメソッドを実行するだけで、新しいメソッドを定義しないでください。

解決策は、copyFolder メソッドをクラスに定義し、onClick メソッドで実行することです。

于 2013-02-10T18:07:37.487 に答える
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;
  }
}
于 2013-02-10T18:06:10.123 に答える