如何只将.txt文件获取到ArrayList

时间:2017-10-26 12:21:50

标签: c# .net arraylist

我的活动中有这个代码。使用此代码,我获得了所有文件,但我只想获得.txt个文件而不是所有文件。我该怎么办MyFiles.add(files[i].getName());

@SuppressLint("SdCardPath")
public void li () {
    ArrayList<String> FilesInFolder = GetFiles("/sdcard");
    lv = (ListView)findViewById(R.id.list_item);
    lv.setAdapter(new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, FilesInFolder));
    Collections.sort(FilesInFolder );
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, 
long id) {
        String s = (String) parent.getItemAtPosition(position);
        h = s;
  //to do
            }
         }
    }); 
}

public ArrayList<String> GetFiles(String DirectoryPath) {
    ArrayList<String> MyFiles = new ArrayList<String>();
    File f = new File(DirectoryPath);

    f.mkdirs();
    File[] files = f.listFiles();
    if (files.length == 0)
        Toast.makeText(this, R.string.foldeisempty, 
Toast.LENGTH_SHORT).show();

    else {
        for (int i=0; i<files.length; i++) 
            MyFiles.add(files[i].getName());
    }

    return MyFiles;
}

2 个答案:

答案 0 :(得分:0)

转过来:

for (int i=0; i<files.length; i++) 
    MyFiles.add(files[i].getName());

进入这个:

string fileName="";
string extension="";
for (int i=0; i<files.length; i++){
    fileName=files[i].getName();
    extension = Path.GetExtension(fileName);
    if(extension==".txt")MyFiles.add(fileName);
}

并确保您在模块的顶部有这个,这使得“Path.GetExtension”可用:

using System.IO

答案 1 :(得分:0)

您只需要检查文件类型

for (int i=0; i<files.length; i++) {
    var extension = Path.GetExtension(files[i].getName());
    if (extension = '.txt')
        MyFiles.add(files[i].getName());
}