➊ 提示user輸入檔名
➋ 可輸入檔名的地方
➌ 按下Button即建立新檔
➍ 分隔線的圖
➎ 提示user目前所在資料夾
➏ 列出該資料夾下所有檔案
onCreate()內儘量簡化為
如果(SD卡存在)
{
載入路徑下所有檔案顯示於➏
➎告知user目前資料夾路徑
}
否則
{
➎告知user需要裝置SD卡
}
當user按下➌
{
建立檔案, 並更新顯示於➏
}
=====粗體的部份要以function來實作, 好處是使code看起來更規律&能重複使用=====
SD卡存在
//判斷SD卡內的指定資料夾是否存在
public boolean funSDState()
{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
//若SD存在, 取出路徑
SDCardpath = Environment.getExternalStorageDirectory();
//指定儲存資料夾
savePath = SDCardpath+"/FileReadWrite";
File mSDFolder = new File(savePath);
//判別儲存資料夾是否存在
if(!mSDFolder.exists())
{
//若不存在則建立
mSDFolder.mkdir();
}
return true;
}
else
{
return false;
}
}
載入路徑下所有檔案顯示於➏
public void funLoadListData()
{
allSDFiles = new ArrayList<String>();
File[] mSDFiles=new File(savePath).listFiles();
for(File f:mSDFiles)
{
String mFileName = f.getName();
allSDFiles.add(mFileName);
}
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, allSDFiles);
lv_list.setAdapter(adapter);
}
建立檔案, 並更新顯示於➏
public void funCreateFile()
{
if(funSDState())
{
//沒輸入則不能建立檔案, 但空白一格還是可以建立
if(et_create.getText().toString().equals(""))
{
Toast.makeText(context, "need a name", Toast.LENGTH_SHORT).show();
}
else
{
//檔名
newFileName = et_create.getText().toString()+".txt";
//檔案路徑
mSDDoc = new File(savePath+java.io.File.separator+newFileName);
//判別該檔案是否存在
if( !mSDDoc.exists() )
{
try
{
//若該檔案不存在, 則用createNewFile()建立
//● boolean java.io.File.createNewFile() throws IOException
mSDDoc.createNewFile();
}
catch (IOException e)
{
e.printStackTrace();
}
}
funLoadListData();
}
}
else
{
Toast.makeText(context, "need SD card to save file", Toast.LENGTH_SHORT).show();
}
}
%%%%%%%%%%%%%%%%%延伸學習-next step%%%%%%%%%%%%%%%%%%%%%%%%%簡易檔案夾(二)
http://bedingfield-tsots.blogspot.tw/2012/03/blog-post_16.html
沒有留言:
張貼留言