最終如上。改應用主要用於測試android平台下,如何使用代碼來操作sd卡。
main.xml
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"<br /> ><br /><TextView<br />android:id="@+id/textView"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:text="@string/hello"<br /> /><br /></LinearLayout><br />
SdCardActivity.java
package cn.com.android.sdcard;</p><p>import java.io.File;<br />import java.io.IOException;</p><p>import android.app.Activity;<br />import android.os.Bundle;<br />import android.os.Environment;<br />import android.util.Log;<br />import android.widget.TextView;<br />/**<br /> * @author chenzheng_java<br /> * @since 2011/03/02<br /> * @description 對android基於sdcard的應用進行測試<br /> *<br /> */<br />public class SdCardActivity extends Activity {<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> String result = "";<br /> //擷取檔案預設儲存位置的絕對路徑<br /> File fileDir = this.getFilesDir();<br /> Log.i("檔案路徑",fileDir.getPath());<br /> result+="檔案路徑 /n fileDir.getPath():"+fileDir.getPath();<br /> result+="/n fileDir.getAbsolutePath():"+fileDir.getAbsolutePath();<br /> result+="/n fileDir.getName():"+fileDir.getName();</p><p> // 擷取外部存放裝置的目前狀態<br /> String externalStorageState = Environment.getExternalStorageState();<br /> // Environment.MEDIA_MOUNTED代表著外部存放裝置存在,並且是可讀寫的<br /> if(externalStorageState.equals(Environment.MEDIA_MOUNTED)){<br /> // getExternalStorageDirectory擷取外部存放裝置的路徑<br /> Log.i("SDcard路徑",Environment.getExternalStorageDirectory().getAbsolutePath());<br /> File file = new File(Environment.getExternalStorageDirectory(),"chenzheng_java.txt");<br /> result+=" sdcard絕對路徑:"+Environment.getExternalStorageDirectory().getAbsolutePath();<br /> result+=" /n sdcard路徑:"+Environment.getExternalStorageDirectory().getPath();<br /> if(!file.exists()){<br /> try {<br />file.createNewFile();<br />Log.i("結果", "建立成功。");<br />} catch (IOException e) {<br />Log.i("結果", "建立沒成功。");<br />e.printStackTrace();<br />}<br /> }<br /> }</p><p> TextView textView = (TextView)findViewById(R.id.textView);<br /> textView.setText(result);</p><p> }<br />}
AndroidManifest.xml檔案代碼如下:
<?xml version="1.0" encoding="utf-8"?><br /><manifest xmlns:android="http://schemas.android.com/apk/res/android"<br /> package="cn.com.android.sdcard"<br /> android:versionCode="1"<br /> android:versionName="1.0"><br /> <uses-sdk android:minSdkVersion="8" /><br /> <!-- 添加對SDCARD的寫入權限 --><br /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission></p><p> <application android:icon="@drawable/icon" android:label="@string/app_name"><br /> <activity android:name=".SdCardActivity"<br /> android:label="@string/app_name"><br /> <intent-filter><br /> <action android:name="android.intent.action.MAIN" /><br /> <category android:name="android.intent.category.LAUNCHER" /><br /> </intent-filter><br /> </activity></p><p> </application><br /></manifest>
--------------------------------------------------------------------------
由代碼我們可以看出,如果我們想要對sd卡進行操作,
那麼第一,我們首先要有一個SD卡,這裡的SD是通過鏡像檔案類比的。
第二,我們要在android的manifest.xml檔案中進行許可權聲明,告訴系統,我們的應用具有訪問SD卡的權利,<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>.
第三步,我們便可以通過操作檔案的代碼來進行SD卡的管理了。
---------------------------------------------------------------------------
附錄:
向SD卡中寫入許可權,<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
允許安裝和卸載行動裝置
,<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS
"></uses-permission>