2013年3月3日 星期日

android 檔案存取


Android 對於 SD Card 的位置,

可以用 Environment.getExternalStorageDirectory( ) 取得,

Android 對於 SD Card 是否插入,

可以用 Environment.getExternalStorageState( ) 判斷之,

Android 對於 SD Card 的存取權限, 必須有 android.permission.WRITE_EXTERNAL_STORAGE 權限:

public class helloWorld extends Activity {
   
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView( R.layout.main );
      
      Button b = (Button)this.findViewById(R.id.buttonObj);
      
      b.setOnClickListener( new OnClickListener(){
         public void onClick(View arg0) {
          
            File vSDCard = null;
            
            try {
               // 判斷 SD Card 有無插入
               if( Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED) )
                  return;
               else
               {
                  // 取得 SD Card 位置
                  vSDCard = Environment.getExternalStorageDirectory();
               }
               
               // 判斷目錄是否存在
               File vPath = new File( vSDCard.getParent() + vSDCard.getName() + "/tom" );
               if( !vPath.exists() )
                  vPath.mkdirs();
               
               // 寫入檔案
               FileWriter vFile = new FileWriter( vSDCard.getParent() + vSDCard.getName() + "/tom/myTest.txt" );
               vFile.write("Hello Android");
               vFile.close();
             
            } catch (Exception e) {
               // 錯誤處理
            }
         }
      });
   }
}


沒有留言:

張貼留言