AI開發實戰10-檔案管理器(File)的定製
9 檔案管理器(File)的定製
App Inventor2內建的檔案管理器沒有修改檔名和獲取檔案大小兩個常用功能,現修改原始碼實現這兩個功能。
檔案管理器的原始碼檔案是File.java,在其中增加兩個函式:
@SimpleFunction(description = "修改檔名")
public void Rename(String oldFileName, String newFileName) {
java.io.File file = new java.io.File(oldFileName);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
form.dispatchErrorOccurredEvent(File.this, "RenameFile",
ErrorMessages.ERROR_CANNOT_CREATE_FILE, oldFileName);
return;
}
}
file.renameTo(new java.io.File(newFileName));
}
@SimpleFunction(description = "獲取檔案大小")
public long GetFileSize(String fileName) {
java.io.File file = new java.io.File(fileName);
if(file.exists()){
return file.length();
}else{
return 0;
}
}
在OdeMessages.java中增加函式和函式引數的宣告:
//函式宣告
@DefaultMessage("GetFileSize")
@Description("")
String GetFileSizeMethods();
@DefaultMessage("Rename")
@Description("")
String RenameMethods();
//函式引數宣告,fileName引數的申明是系統原先就有的
@DefaultMessage("fileName")
@Description("")
String fileNameParams();
@DefaultMessage("oldFileName")
@Description("")
String oldFileNameParams();
@DefaultMessage("newFileName")
@Description("")
String newFileNameParams();
在OdeMessages_zh_CN.properties中增加函式和引數的中文字串:
// fileName
fileNameParams = 檔名
oldFileNameParams = 舊檔名
newFileNameParams = 新檔名
RenameMethods = 修改檔名
GetFileSizeMethods = 獲取檔案大小
最終的實現效果如下:
在工作面板中增加了獲取檔案大小和修改檔名兩個函式