總網頁瀏覽量

關於我自己

我的相片
人生的必修課是接受無常,人生的選修課是放下執著。

2012年3月16日 星期五

簡易檔案夾(一)

基本架構如下

➊ 提示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

 

沒有留言:

張貼留言