Android 取得文件路径

getCacheDir与getFilesDir

        src/irdc.ex05_16/EX05_16_1.java

        以ListActivity来显示传入的目录下的文件或目录,打开目录时,会再列出该目录下的文件(File)及目录(Directory)。

Java代码:

  1. public class EX05_16_1 extends ListActivity { 
  2. private List<String> items = null; 
  3. private String path; 
  4. /*
  5. * Called when the activity is first created. 
  6. */ 
  7. public void onCreate(Bundle savedInstanceState) { 
  8. super.onCreate(savedInstanceState); 
  9. setContentView(R.layout.mylist); 
  10. Bundle bunde = this.getIntent().getExtras(); 
  11. /* 取得EX05_16所传的路径 */ 
  12. path = bunde.getString("path"); 
  13. this.setTitle(path); 
  14. java.io.File file = new java.io.File(path); 
  15. /* 列出该路径下的所有文件 */ 
  16. fill(file.listFiles()); 

  17. @Override 
  18. protected void onListItemClick (ListView l, View v, int position, long id) { 
  19. File file = new File (path + java.io.File.separator + items.get(position)); 
  20. if (file.isDirectory()) { 
  21. fill(file.listFiles()); 


  22. private void fill(File[] files) {
  23. items = new ArrayList<String>(); 
  24. if (files == null) { 
  25. return; 

  26. /* 取得文件名放入ArrayList */ 
  27. for (File file : files) { 
  28. items.add(file.getName()); 

  29. /* 将ArrayList放入ArrayAdapter */ 
  30. ArrayAdapter<String> fileList = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, items); 
  31. setListAdapter(fileList); 


  32. }
复制代码

       AndroidManifest.xml

       本应用范例程序里有两个Activity,其一为LAUNCHER启动时运行,另一个为取得文件夹信息时所需显示的Activity,如下Manifest所描述的。

Java代码:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="irdc.ex05_16" android:versionCode="1" 
  3. android:versionName="1.0.0"> 
  4. <application 
  5. android:icon="@drawable/icon" 
  6. android:label="@string/app_name"> 
  7. <activity 
  8. android:name=".EX05_16" 
  9. android:label="@string/app_name"> 
  10. <intent-filter> 
  11. <action 
  12. android:name="android.intent.action.MAIN" /> 
  13. <category 
  14. android:name="android.intent.category.LAUNCHER" /> 
  15. </intent-filter> 
  16. </activity> 
  17. <activity 
  18. android:name="EX05_16_1">
  19. </activity> 
  20. </application> 
  21. <uses-sdk android:minSdkVersion="7" /> 
  22. </manifest>
复制代码

        Context提供了一些有关文件的方法。

       public File getDir(String name, int mode):name目录名称、mode权限,如果传入的目录不存在,系统会创建此目录,路径为"/data/data/程序Package Name/app_name",name就是传入的name。

       public File getFileStreamPath(String name):name为文件名称,所取得的文件必须是放在/data/data/程序
Package Name/files的文件。

       public File getFilesDir():取得"/data/data/程序Package Name/files"这个目录的File。

       public FileInputStream openFileInput(String name):读取文件,name为文件名不能包含路径,文件的路径为"/data/data/程序Package Name/files",如果文件不存在,将会出现FileNotFoundException。

        public FileOutputStream openFileOutput(String name, int mode):写文件,name为文件名不能包含路径,mode为权限,文件的路径为"/data/data/程序Package Name/files"。

系列之Android 取得文件路径(一)的帖子链接 http://www.eoeandroid.com/thread-74439-1-1.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值