Android - 复制文件总是抛出IOException

时间:2016-06-13 20:12:17

标签: java android

所以..我真的很沮丧。 它仍然在发生。 我想做的就是复制一个文件夹,里面的文件,它的子文件夹,里面的文件等等。 听起来很简单吧? 好吧,这是我的代码 - 请告诉我我做错了什么。我已经尝试了所有方法,所有方法,最终使用FileUtils,我觉得最简单..

启动startCopy:

try{startCopy();}catch (IOException e){Toast.makeText(getApplicationContext(), "Unknown Error", Toast.LENGTH_SHORT).show();}

和startCopy本身:

public void startCopy() throws IOException{
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    String blitzWhere = prefs.getString("blitzWhere", null);
    Spinner SpinnerReplace=(Spinner) findViewById(R.id.SpinnerReplace);
    String toReplace = SpinnerReplace.getSelectedItem().toString();
    Spinner SpinnerReplaceWith=(Spinner) findViewById(R.id.SpinnerReplaceWith);
    String replacedBy = SpinnerReplaceWith.getSelectedItem().toString();
    File lowBackup = new File(blitzWhere + "/Android/data/net.wargaming.wot.blitz/files/Data/3d/Maps/hangarlow_b");
    File premiumBackup = new File(blitzWhere + "/Android/data/net.wargaming.wot.blitz/files/Data/3d/Maps/hangar_b");
    lowBackup.mkdirs();
    premiumBackup.mkdirs();
    if (!lowBackup.isDirectory() && !premiumBackup.isDirectory()){
        File hangarLow = new File(blitzWhere + "/Android/data/net.wargaming.wot.blitz/files/Data/3d/Maps/hangarlow");
        File hangar = new File(blitzWhere + "/Android/data/net.wargaming.wot.blitz/files/Data/3d/Maps/hangar");

        lowBackup.mkdirs();
        premiumBackup.mkdirs();
        FileUtils.copyDirectory(hangarLow, lowBackup);
        FileUtils.copyDirectory(hangar, premiumBackup);

    }

    Toast.makeText(getApplicationContext(), blitzWhere, Toast.LENGTH_LONG).show();
    Toast.makeText(getApplicationContext(), toReplace, Toast.LENGTH_LONG).show();
    Toast.makeText(getApplicationContext(), replacedBy, Toast.LENGTH_LONG).show();


    successfulCopy();
}

它所做的一切就是它提供了“未知错误”消息,如果抛出IOException,这就是我想要的。 我是一个Java新手,我正在学习。 当然,两个文件夹(hangar_b和hangarlow_b)都不存在,否则问题就出在这里。 那么,有什么想法吗? 感谢。

0 个答案:

没有答案