【问题标题】:How to output files without extension from external storage directory?如何从外部存储目录输出没有扩展名的文件?
【发布时间】:2015-07-08 03:25:21
【问题描述】:

我在堆栈上查看了类似的问题,但未能成功找到解决我遇到的特殊问题的答案。我会捐赠给任何能给我解决方案的人。

我正在尝试从没有扩展名的外部存储目录中显示内容(.txt 文件)。我已导入 (apache.commons.io)。

ArrayAdapter mArrayAdapter;
ListView listView;
String fileNames[];
ArrayList<String> nameArray;



protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    this.setContentView(R.layout.activity_read_note_menu);

    listView = (ListView) this.findViewById(R.id.readListView);
    fileNames = new File(String.valueOf(Environment.getExternalStorageDirectory().getAbsolutePath()) + "/Notes").list();

    nameArray = new ArrayList<>();

         for (String name: fileNames){
            name = name.substring(0, name.indexOf("."));
            nameArray.add(name);
            Log.d("Files", "FileName:" + name);

    }

    mArrayAdapter = new ArrayAdapter<>(this, R.layout.list_item_1, nameArray);
    mArrayAdapter.sort(new Comparator<String>() {

        public int compare(String li1, String li2) {

            return li1.compareTo(li2);
        }

    });

    listView.setAdapter(mArrayAdapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView adapterView, View view, int i, long l) {
            String string = (String) listView.getItemAtPosition(i);
            Intent intent = new Intent(ReadNoteMenu.this, ReadNote.class);
            intent.putExtra(EXTRA_MESSAGE, string);
            ReadNoteMenu.this.startActivity(intent);

            finish();

        }

    });

【问题讨论】:

  • 你知道完整路径吗?
  • /storage/emulated/0/Notes 是完整路径。

标签: java android


【解决方案1】:

确保您从以下代码中获取所有文件列表:

String fileNames[] = new  File(String.valueOf(Environment.getExternalStorageDirectory().getAbsolutePath()) + "/Notes").list();

获得所有文件列表后,从文件名中删除扩展名并将该名称存储在数组中。

ArrayList<String> nameArray = new ArrayList<String>();

for (String name: fileNames){
   name = name.substring(0, name.indexOf("."));
   nameArray.add(name);
   Log.d("Files", "FileName:" + name);
}

请在您的适配器中传递nameArray 以完成工作,如下所示:

mArrayAdapter = new ArrayAdapter(this, R.layout.list_item_1, nameArray);

【讨论】:

  • 它离我想要完成的目标更近了一步。我根据您的建议编辑了我的代码。问题是列表视图中只显示一个文件。好消息是一个文件没有显示扩展名。它正在记录所有文件,只是没有在 listView 中显示所有文件。进一步的建议??
  • 编辑成功!我的 listView 显示所有没有扩展名的文件。我现在用编辑的代码遇到了另一个问题。当我单击 listView 中的项目(文件)时。将显示文件名,但不显示内容(文本)。有什么想法吗??
  • 要显示文本,您必须阅读每个文本文件并在视图中显示该文本。您可以为此提出单独的问题。关注Afa问题,希望能涵盖您的问题,如果有帮助,请考虑接受答案。
  • 这有助于阅读文本:http://stackoverflow.com/questions/12421814/how-can-i-read-a-text-file-in-android
  • 感谢您所做的一切。作为一个新的编码器/开发者,我经常遇到问题,所以每一点帮助都值得赞赏。我可以通过 PayPal 捐款以表达我的感激之情。如果你接受给我发电子邮件 m4tchb0x87@gmail.com.
猜你喜欢
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
  • 2017-06-27
相关资源
最近更新 更多