转:android操作sdcard

原创
2013/04/27 10:11
阅读数 129

最终效果图如上。改应用主要用于测试android平台下,如何使用代码来操作sd卡。


main.xml

<?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:orientation="vertical"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        >  
    <TextView    
        android:id="@+id/textView"  
        android:layout_width="fill_parent"   
        android:layout_height="wrap_content"   
        android:text="@string/hello"  
        />  
    </LinearLayout>

SdCardActivity.java

package cn.com.android.sdcard;  
      
    import java.io.File;  
    import java.io.IOException;  
      
    import android.app.Activity;  
    import android.os.Bundle;  
    import android.os.Environment;  
    import android.util.Log;  
    import android.widget.TextView;  
    /** 
     * @author chenzheng_java 
     * @since 2011/03/02 
     * @description 对android基于sdcard的应用进行测试 
     * 
     */  
    public class SdCardActivity extends Activity {  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            String result = "";  
            //获取文件默认存储位置的绝对路径  
            File fileDir = this.getFilesDir();  
            Log.i("文件路径",fileDir.getPath());  
            result+="文件路径 /n fileDir.getPath():"+fileDir.getPath();  
            result+="/n fileDir.getAbsolutePath():"+fileDir.getAbsolutePath();  
            result+="/n fileDir.getName():"+fileDir.getName();  
              
            // 获取外部存储设备的当前状态  
            String externalStorageState = Environment.getExternalStorageState();  
           // Environment.MEDIA_MOUNTED代表着外部存储设备存在,并且是可读写的  
            if(externalStorageState.equals(Environment.MEDIA_MOUNTED)){  
                // getExternalStorageDirectory获取外部存储设备的路径  
                Log.i("SDcard路径",Environment.getExternalStorageDirectory().getAbsolutePath());  
                File file = new File(Environment.getExternalStorageDirectory(),"chenzheng_java.txt");  
                result+="   sdcard绝对路径:"+Environment.getExternalStorageDirectory().getAbsolutePath();  
                result+=" /n  sdcard路径:"+Environment.getExternalStorageDirectory().getPath();  
                if(!file.exists()){  
                    try {  
                        file.createNewFile();  
                        Log.i("结果", "创建成功。");  
                    } catch (IOException e) {  
                        Log.i("结果", "创建没成功。");  
                        e.printStackTrace();  
                    }  
                }  
            }  
              
            TextView textView = (TextView)findViewById(R.id.textView);  
            textView.setText(result);  
              
        }  
    }

AndroidManifest.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>  
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
          package="cn.com.android.sdcard"  
          android:versionCode="1"  
          android:versionName="1.0">  
        <uses-sdk android:minSdkVersion="8" />  
        <!-- 添加对SDCARD的写权限 -->  
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>  
      
        <application android:icon="@drawable/icon" android:label="@string/app_name">  
            <activity android:name=".SdCardActivity"  
                      android:label="@string/app_name">  
                <intent-filter>  
                    <action android:name="android.intent.action.MAIN" />  
                    <category android:name="android.intent.category.LAUNCHER" />  
                </intent-filter>  
            </activity>  
      
        </application>  
    </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>


展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部