日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 获取文件夹下的所有文件

發布時間:2024/4/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 获取文件夹下的所有文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天,在做工作時,需要遍歷所有一個文件夾下的所有文件夾,當時自己也不知道怎么做,后來在網上搜索了一些資料,發現其實也很簡單。

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 获取文件夹下的所有文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。