Android 获取文件目录以及文件的删除
2011-12-20 14:32
393 查看
//看来看一下效果
//main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:layout_width="fill_parent"
android:id="@+id/TextView"
android:background="#ffff00"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
//文件清单里面要加权限, 不然无法删除文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
//核心代码
package sn.len.service;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class TestServiceActivity extends ListActivity
{
private List<String> items = null;//存放名称
private List<String> paths = null;//存放路径
private String rootPath = "/";
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.TextView);
this.getFileDir(rootPath);//获取rootPath目录下的文件.
}
public void getFileDir(String filePath)
{
try
{
this.tv.setText("当前路径:"+filePath);// 设置当前所在路径
items = new ArrayList<String>();
paths = new ArrayList<String>();
File f = new File(filePath);
File[] files = f.listFiles();// 列出所有文件
// 如果不是根目录,则列出返回根目录和上一目录选项
if (!filePath.equals(rootPath))
{
items.add("返回根目录");
paths.add(rootPath);
items.add("返回上一层目录");
paths.add(f.getParent());
}
// 将所有文件存入list中
if(files != null)
{
int count = files.length;// 文件个数
for (int i = 0; i < count; i++)
{
File file = files[i];
items.add(file.getName());
paths.add(file.getPath());
}
}
//可以去查一相这个类
//this 上下文
//android.R.layout.simple_list_item_1 是Android显示列表每一项自己的主题
//item则就是根据你自己的内容来显示
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
this.setListAdapter(adapter);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
String path = paths.get(position);
final File file = new File(path);
//如果是文件夹就继续分解
if(file.isDirectory())
{
this.getFileDir(path);
}
else
{
AlertDialog.Builder alertDialog=new AlertDialog.Builder(this);
alertDialog.setTitle("提示");
alertDialog.setMessage(file.getName()+" 是一个文件,你要删除这个文件吗");
//设置左面确定
alertDialog.setPositiveButton
("确定", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//执行删除,或者什么。。。操作
File delFile=new File(file.getAbsolutePath());
if(delFile.exists())
{
Log.i("PATH",delFile.getAbsolutePath());
delFile.delete();
//刷新界面
getFileDir(file.getParent());
}
}
}
);
//设置右边取消
alertDialog.setNegativeButton
("取消", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//执行操作
getFileDir(file.getParent());
}
}
);
alertDialog.show();
}
}
}
//main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:layout_width="fill_parent"
android:id="@+id/TextView"
android:background="#ffff00"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
//文件清单里面要加权限, 不然无法删除文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
//核心代码
package sn.len.service;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class TestServiceActivity extends ListActivity
{
private List<String> items = null;//存放名称
private List<String> paths = null;//存放路径
private String rootPath = "/";
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.TextView);
this.getFileDir(rootPath);//获取rootPath目录下的文件.
}
public void getFileDir(String filePath)
{
try
{
this.tv.setText("当前路径:"+filePath);// 设置当前所在路径
items = new ArrayList<String>();
paths = new ArrayList<String>();
File f = new File(filePath);
File[] files = f.listFiles();// 列出所有文件
// 如果不是根目录,则列出返回根目录和上一目录选项
if (!filePath.equals(rootPath))
{
items.add("返回根目录");
paths.add(rootPath);
items.add("返回上一层目录");
paths.add(f.getParent());
}
// 将所有文件存入list中
if(files != null)
{
int count = files.length;// 文件个数
for (int i = 0; i < count; i++)
{
File file = files[i];
items.add(file.getName());
paths.add(file.getPath());
}
}
//可以去查一相这个类
//this 上下文
//android.R.layout.simple_list_item_1 是Android显示列表每一项自己的主题
//item则就是根据你自己的内容来显示
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
this.setListAdapter(adapter);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
String path = paths.get(position);
final File file = new File(path);
//如果是文件夹就继续分解
if(file.isDirectory())
{
this.getFileDir(path);
}
else
{
AlertDialog.Builder alertDialog=new AlertDialog.Builder(this);
alertDialog.setTitle("提示");
alertDialog.setMessage(file.getName()+" 是一个文件,你要删除这个文件吗");
//设置左面确定
alertDialog.setPositiveButton
("确定", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//执行删除,或者什么。。。操作
File delFile=new File(file.getAbsolutePath());
if(delFile.exists())
{
Log.i("PATH",delFile.getAbsolutePath());
delFile.delete();
//刷新界面
getFileDir(file.getParent());
}
}
}
);
//设置右边取消
alertDialog.setNegativeButton
("取消", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//执行操作
getFileDir(file.getParent());
}
}
);
alertDialog.show();
}
}
}
相关文章推荐
- Android 获取文件目录以及文件的删除
- Android 删除目录下的所有文件以及文件夹及遍历文件夹下面的文件
- Android中获取App的File路径,以及拷贝Asses目录下的文件
- 获取文件夹大小以及删除指定目录下文件及目录
- android 获取路径目录方法以及判断目录是否存在,创建目录
- Java IO 目录文件复制与删除以及目录大小与文件个数统计
- 递归解压当前目录以及子目录下的所有压缩文件,并删除源文件
- 用tensorflow创建文件目录以及删除目录下所有内容
- 安卓学习笔记---如何保存数据到SharePreference里面,获取所有sp文件以及删除文件
- Android之获取指定目录下的所有特殊文件名字
- android 遍历根目录获取音乐文件从听筒播放 延迟播放
- C++ 删除、重命名文件 、获取当前目录所有文件代码
- android 获取路径目录方法以及判断目录是否存在,创建目录
- Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
- android 中读取asset目录中文件并写入SD卡以及从SD卡中读取的简介
- 获取Android的assets目录下的文件
- 自己写的处理文件的类,删除目录,复制目录,遍历目录,获取文件属性,点评一下啊
- android SD卡目录下创建、复制文件夹以及文件
- android 获取路径方法以及判断目录是否存在、创建目录
- Python批量打开文件以及获取文件名、目录及路径