android 获取文件夹下的所有文件
来源:互联网 发布:oracle数据库api 编辑:程序博客网 时间:2024/05/18 03:33
昨天,在做工作时,需要遍历所有一个文件夹下的所有文件夹,当时自己也不知道怎么做,后来在网上搜索了一些资料,发现其实也很简单。
1.获取SD是否可以读写,如果可以,则传入文件的路径
/*读取输入的某个文件夹中所有的txt文件
* 显示文件名、文件内容
* */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et_folder; //输入的文件夹名
private Button bt_open; //打开按钮
private Button bt_clear; //清除按钮
private EditText et_filename; //用于显示文件名
private EditText et_filecontent; //用于显示txt文件内容
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_folder = (EditText) findViewById(R.id.ET_Folder);
et_filename = (EditText) findViewById(R.id.ET_FileName);
et_filecontent = (EditText) findViewById(R.id.ET_FileContent);
bt_open = (Button) findViewById(R.id.But_Open);
bt_open.setOnClickListener(new OnClickListener(){//打开按钮监听
public void onClick(View arg0) {
//若输入的文件夹名为空
if(et_folder.getText().toString().trim().equals("")){
Toast.makeText(getApplicationContext(),
"输入为空",Toast.LENGTH_SHORT).show();
}else{
// 获得SD卡根目录路径 "/sdcard"
File sdDir = Environment.getExternalStorageDirectory();
File path = new File(sdDir+File.separator
+et_folder.getText().toString().trim());
// 判断SD卡是否存在,并且是否具有读写权限
if (Environment.getExternalStorageState().
equals(Environment.MEDIA_MOUNTED)) {
File[] files = path.listFiles();// 读取文件夹下文件
et_filename.setText("");
et_filecontent.setText("");
et_filename.setText(getFileName(files));
et_filecontent.setText(getFileContent(files));
}
}
}
});
bt_clear = (Button) findViewById(R.id.But_Clear);
bt_clear.setOnClickListener(new OnClickListener(){//清除按钮监听
public void onClick(View arg0) {
et_folder.setText("");
et_filename.setText("");
et_filecontent.setText("");
}
});
}
//读取指定目录下的所有TXT文件的文件内容
protected String getFileContent(File[] files) {
String content = "";
if (files != null) { // 先判断目录是否为空,否则会报空指针
for (File file : files) {
//检查此路径名的文件是否是一个目录(文件夹)
if (file.isDirectory()) {
Log.i("zeng", "若是文件目录。继续读1" +
file.getName().toString()+ file.getPath().toString());
getFileContent(file.listFiles());
Log.i("zeng", "若是文件目录。继续读2" +
file.getName().toString()+ file.getPath().toString());
} else {
if (file.getName().endsWith(".txt")) {//格式为txt文件
try {
InputStream instream = new FileInputStream(file);
if (instream != null) {
InputStreamReader inputreader =
new InputStreamReader(instream, "GBK");
BufferedReader buffreader =
new BufferedReader(inputreader);
String line="";
//分行读取
while (( line = buffreader.readLine()) != null) {
content += line + "\n";
}
instream.close();
}
}
catch (java.io.FileNotFoundException e) {
Log.d("TestFile", "The File doesn't not exist.");
}
catch (IOException e) {
Log.d("TestFile", e.getMessage());
}
}
}
}
}
return content ;
}
//读取指定目录下的所有TXT文件的文件名
private String getFileName(File[] files) {
String str = "";
if (files != null) { // 先判断目录是否为空,否则会报空指针
for (File file : files) {
if (file.isDirectory()){//检查此路径名的文件是否是一个目录(文件夹)
Log.i("zeng", "若是文件目录。继续读1"
+file.getName().toString()+file.getPath().toString());
getFileName(file.listFiles());
Log.i("zeng", "若是文件目录。继续读2"
+file.getName().toString()+ file.getPath().toString());
} else {
String fileName = file.getName();
if (fileName.endsWith(".txt")) {
String s=fileName.substring(0,fileName.lastIndexOf(".")).toString();
Log.i("zeng", "文件名txt:: " + s);
str += fileName.substring(0,fileName.lastIndexOf("."))+"\n";
}
}
}
}
return str;
}
}
这个代码是截取自网上的资料,主要是在在界面有个输入框,然后输入路径,判断sd卡根目录是否存在该文件,如果存在,就遍历文件夹下的文件。
主要是getFileName(File[] files) ,通过循环不断遍历文件夹,最后判断是否为.txt的文件,如果是,则显示在界面上。主要是file.listFiles())可以获取文件夹下的所有文件。
android 获取文件夹下的所有文件就讲完了。其实也很简单,如果大家想要知道更多文件的相关操作,可以自己在网上查找资料。
就这么简单。
- android 获取文件夹下的所有文件
- 获取文件夹下的所有文件
- 获取一个文件夹下的所有文件
- C++ 获取文件夹下所有的文件
- 获取文件夹下所有文件
- java获取某个文件夹下的所有文件、删除文件
- 获取文件夹下的所有文件,包含所有子目录下的所有文件
- Android 根据路径获取该目录下的所有的 "文件夹",或者文件 判断的演变
- C#获取文件夹下的所有文件的文件名
- C#获取文件夹下的所有文件的文件名
- C#获取文件夹下的所有文件的文件名
- C++获取文件夹下的所有文件的名字
- C#获取文件夹下的所有文件的文件名
- java获取文件夹下所有文件的名称
- ListView获取指定目录下的所有文件及文件夹
- iOS获取文件夹下某个后缀的所有文件
- php获取指定文件夹下的所有子文件
- 关于C++中获取指定文件夹下的所有文件
- c#接口
- 远程执行系统命令的服务器与popen的使用
- MySQL数据库知识点7
- java获得当前文件路径
- 利用gcov实现代码覆盖率检测
- android 获取文件夹下的所有文件
- NSFileManager使用文件操作
- 骨牌覆盖问题总结!hihoCoder/ NYOJ-1273宣传墙1151
- MySQL 数据表操作
- c# 获取相对路径
- 获取数组最值下标
- Visual Studio 2015 英文菜单大小写字母切换
- 程序员学学智力题
- 文章标题