android 讀取sdcard

來源:互聯網
上載者:User

最近寫了一個讀書android sdcard的程式使用的Environment類的靜態方法得到得sdcard路徑,剛開始的時候沒有讀取成功,並提示許可權異常,明明我已經在AndroidManifest.xml檔案中加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />許可權,還是報這個異常,後來經過仔細尋找資料才知道,原來還少了個許可權<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />,加上這個許可權後就能正確讀取sdcard的內容了。

下面是我的AndroidManifest.xml檔案

<?xml version="1.0" encoding="utf-8"?><br /><manifest xmlns:android="http://schemas.android.com/apk/res/android"<br />package="com.yzq.sdcarlist" android:versionCode="1"<br />android:versionName="1.0"></p><p><application android:icon="@drawable/icon" android:label="@string/app_name"><br /><activity android:name="SdCardListActivity" android:theme="@android:style/Theme.NoTitleBar"><br /><intent-filter><br /><action android:name="android.intent.action.MAIN" /><br /><category android:name="android.intent.category.LAUNCHER" /><br /></intent-filter><br /></activity><br /></application></p><p><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><br /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><br /></manifest>

這是JAVA源碼

public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.main);<br />sdcard_File_List = (ListView) findViewById(R.id.sdcard_file_list);<br />SimpleAdapter adapter = new SimpleAdapter(this, data,<br />android.R.layout.simple_list_item_2, new String[] { "fileName",<br />"filePath" }, new int[] { android.R.id.text1,<br />android.R.id.text2 });<br />sdcard_File_List.setAdapter(adapter);<br />sdcard_File_List<br />.setOnScrollListener(new AbsListView.OnScrollListener() {</p><p>@Override<br />public void onScrollStateChanged(AbsListView view,<br />int scrollState) {<br />if (scrollState == SCROLL_STATE_IDLE) {</p><p>}<br />}</p><p>@Override<br />public void onScroll(AbsListView view,<br />int firstVisibleItem, int visibleItemCount,<br />int totalItemCount) {</p><p>}<br />});<br />readFile();<br />}</p><p>private void readFile() {<br />File file = Environment.getExternalStorageDirectory();<br />File[] files = file.listFiles();<br />readFile(files);<br />}</p><p>private void readFile(File[] files) {<br />if (files != null && files.length > 0) {<br />for (int i = 0; i < files.length; i++) {<br />if (files[i].isDirectory()) {<br />readFile(files[i].listFiles());<br />} else {<br />parseFile(files[i]);<br />}<br />if (i == files.length - 1) {<br />}<br />}<br />}</p><p>}</p><p>private void parseFile(File file) {<br />String fileName = file.getName();<br />String filePath = file.getPath();<br />Map<String, String> map = new HashMap<String, String>();<br />map.put("fileName", fileName);<br />map.put("filePath", filePath);<br />data.add(map);<br />}

我是採用Environment類的靜態方法得到sdcard得路徑,然後採用遞迴的方式讀出目錄下面的所有檔案.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.