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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/4/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 获取文件夹下的所有文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

昨天,在做工作時(shí),需要遍歷所有一個(gè)文件夾下的所有文件夾,當(dāng)時(shí)自己也不知道怎么做,后來(lái)在網(wǎng)上搜索了一些資料,發(fā)現(xiàn)其實(shí)也很簡(jiǎn)單。

1.獲取SD是否可以讀寫,如果可以,則傳入文件的路徑


/*讀取輸入的某個(gè)文件夾中所有的txt文件
?* 顯示文件名、文件內(nèi)容
?* */

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;????//打開(kāi)按鈕
?private Button bt_clear;???//清除按鈕
?private EditText et_filename;??//用于顯示文件名
?private EditText et_filecontent;?//用于顯示txt文件內(nèi)容
?
?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(){//打開(kāi)按鈕監(jiān)聽(tīng)
???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卡是否存在,并且是否具有讀寫權(quán)限
?????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(){//清除按鈕監(jiān)聽(tīng)
???public void onClick(View arg0) {
????et_folder.setText("");
????et_filename.setText("");
???????????? et_filecontent.setText("");????
???}
??});
??
?}
?
?//讀取指定目錄下的所有TXT文件的文件內(nèi)容
?protected String getFileContent(File[] files) {
??String content? = "";
??if (files != null) {?// 先判斷目錄是否為空,否則會(huì)報(bào)空指針??
??????????? for (File file : files) {
??????????? ?? //檢查此路徑名的文件是否是一個(gè)目錄(文件夾)?
??????????????? if (file.isDirectory()) {
??????????????????? Log.i("zeng", "若是文件目錄。繼續(xù)讀1" +
??????????????????? file.getName().toString()+ file.getPath().toString());?
??????????????????? getFileContent(file.listFiles());?
??????????????????? Log.i("zeng", "若是文件目錄。繼續(xù)讀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) {?// 先判斷目錄是否為空,否則會(huì)報(bào)空指針??
??????????? for (File file : files) {?
??????????????? if (file.isDirectory()){//檢查此路徑名的文件是否是一個(gè)目錄(文件夾)
??????????????????? Log.i("zeng", "若是文件目錄。繼續(xù)讀1"
??????????????????? ?+file.getName().toString()+file.getPath().toString());?
??????????????????? getFileName(file.listFiles());?
??????????????????? Log.i("zeng", "若是文件目錄。繼續(xù)讀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;
??? }
?
}


這個(gè)代碼是截取自網(wǎng)上的資料,主要是在在界面有個(gè)輸入框,然后輸入路徑,判斷sd卡根目錄是否存在該文件,如果存在,就遍歷文件夾下的文件。



主要是getFileName(File[]?files)?,通過(guò)循環(huán)不斷遍歷文件夾,最后判斷是否為.txt的文件,如果是,則顯示在界面上。主要是file.listFiles())可以獲取文件夾下的所有文件。



android 獲取文件夾下的所有文件就講完了。其實(shí)也很簡(jiǎn)單,如果大家想要知道更多文件的相關(guān)操作,可以自己在網(wǎng)上查找資料。




就這么簡(jiǎn)單。
































總結(jié)

以上是生活随笔為你收集整理的android 获取文件夹下的所有文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。