diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/AndroidManifest.xml b/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/AndroidManifest.xml
new file mode 100644
index 00000000..1e62cbc0
--- /dev/null
+++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/AndroidManifest.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/Net1314080903218SDFileExplorer.java b/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/Net1314080903218SDFileExplorer.java
new file mode 100644
index 00000000..b88780da
--- /dev/null
+++ b/app/src/main/java/edu/hzuapps/androidworks/homeworks/net1314080903218/Net1314080903218SDFileExplorer.java
@@ -0,0 +1,145 @@
+package edu.hzuapps.androidworks.homeworks.Net134080903218;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.Button;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
+import android.widget.TextView;
+import android.widget.Toast;
+
+
+public class Net1314080903218SDFileExplorer extends Activity
+{
+ ListView listView;
+ TextView textView;
+ // 记录当前的父文件夹
+ File currentParent;
+ // 记录当前路径下的所有文件的文件数组
+ File[] currentFiles;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.Net1314080903218main);
+ // 获取列出全部文件的ListView
+ listView = (ListView) findViewById(R.id.list);
+ textView = (TextView) findViewById(R.id.path);
+ // 获取系统的SD卡的目录
+ File root = new File("/mnt/sdcard/");
+ // 如果 SD卡存在
+ if (root.exists())
+ {
+ currentParent = root;
+ currentFiles = root.listFiles();
+ // 使用当前目录下的全部文件、文件夹来填充ListView
+ inflateListView(currentFiles);
+ }
+ // 为ListView的列表项的单击事件绑定监听器
+ listView.setOnItemClickListener(new OnItemClickListener()
+ {
+ @Override
+ public void onItemClick(AdapterView> parent, View view,
+ int position, long id)
+ {
+ // 用户单击了文件,直接返回,不做任何处理
+ if (currentFiles[position].isFile()) return;
+ // 获取用户点击的文件夹下的所有文件
+ File[] tmp = currentFiles[position].listFiles();
+ if (tmp == null || tmp.length == 0)
+ {
+ Toast.makeText(SDFileExplorer.this
+ , "当前路径不可访问或该路径下没有文件",
+ Toast.LENGTH_SHORT).show();
+ }
+ else
+ {
+ // 获取用户单击的列表项对应的文件夹,设为当前的父文件夹
+ currentParent = currentFiles[position]; //②
+ // 保存当前的父文件夹内的全部文件和文件夹
+ currentFiles = tmp;
+ // 再次更新ListView
+ inflateListView(currentFiles);
+ }
+ }
+ });
+ // 获取上一级目录的按钮
+ Button parent = (Button) findViewById(R.id.parent);
+ parent.setOnClickListener(new OnClickListener()
+ {
+ @Override
+ public void onClick(View source)
+ {
+ try
+ {
+ if (!currentParent.getCanonicalPath()
+ .equals("/mnt/sdcard"))
+ {
+ // 获取上一级目录
+ currentParent = currentParent.getParentFile();
+ // 列出当前目录下所有文件
+ currentFiles = currentParent.listFiles();
+ // 再次更新ListView
+ inflateListView(currentFiles);
+ }
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ private void inflateListView(File[] files) //①
+ {
+ // 创建一个List集合,List集合的元素是Map
+ List