2
我正在使用ProgramAB與Android,它需要我通過在資產文件夾中創建/ bots /目錄將aiml文件從資產文件夾複製到外部存儲。這是我從this教程中獲得的代碼,教程講述了android中的chatbots(這個代碼中調用的其他函數與目錄複製無關)。將資產文件夾子目錄複製到外部存儲中的特定文件夾
我已經嘗試了其他解決方案,但沒有爲我工作。
//checking SD card availablility
boolean a = isSDCARDAvailable();
//receiving the assets from the app directory
AssetManager assets = getResources().getAssets();
File jayDir = new File(Environment.getExternalStorageDirectory().toString() + "/hari/bots/Hari");
boolean b = jayDir.mkdirs();
if (jayDir.exists()) {
//Reading the file
try {
for (String dir : assets.list("Hari")) {
File subdir = new File(jayDir.getPath() + "/" + dir);
boolean subdir_check = subdir.mkdirs();
for (String file : assets.list("Hari/" + dir)) {
File f = new File(jayDir.getPath() + "/" + dir + "/" + file);
if (f.exists()) {
continue;
}
InputStream in = null;
OutputStream out = null;
in = assets.open("Hari/" + dir + "/" + file);
out = new FileOutputStream(jayDir.getPath() + "/" + dir + "/" + file);
//copy file from assets to the mobile's SD card or any secondary memory
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
//get the working directory
MagicStrings.root_path = Environment.getExternalStorageDirectory().toString() + "/hari";
System.out.println("Working Directory = " + MagicStrings.root_path);
AIMLProcessor.extension = new PCAIMLProcessorExtension();
//Assign the AIML files to bot for processing
bot = new Bot("Hari", MagicStrings.root_path, "chat");
chat = new Chat(bot);
String[] args = null;
mainFunction(args);
'boolean b = jayDir.mkdirs();'。如果目錄尚不存在,您應該只調用mkdirs。如果mkdirs返回false,則應該向用戶顯示敬酒信息。並返回。現在你盲目地繼續。請尊重您的代碼。 – greenapps
@greenapps我真的很陌生,我甚至無法檢查複製是否真的發生。由於您陳述的問題,代碼是否沒有執行任務? –
你應該告訴我們什麼工作,什麼不工作。使用日誌語句和吐司來查看會發生什麼。做一些基本的調試。 – greenapps