gpt4 book ai didi

java - 获取 Android 内部(私有(private))存储的任意子目录中的文件列表

转载 作者:行者123 更新时间:2023-11-29 05:40:14 27 4
gpt4 key购买 nike

有人问过这个问题,但没有提出有效的答案。有人在这里问并回答了类似的问题:How to get list of files from a specific folder in internal storage?不幸的是,建议的答案 (getAbsoluteDir) 实际上返回了一个文件,该文件使用与所提供文件相同的路径。

所以又是这样:我有字符串名称用于创建子目录(使用 file.mkdir()),该子目录驻留在我的应用程序的私有(private)内部存储(/data/data)中/come.my.app/file).如何使用该字符串名称列出驻留在该子目录中的文件?我能想到的唯一方法是通过遍历该应用程序目录中的所有子目录,从子目录名称中获取子目录的 File 对象。当然还有更直接的方法...

我这样做的原因是我通过一个包(跨 Activity )传递对该目录的引用(因为它包含的文件)。如果有更好的方法,我愿意接受建议。

最佳答案

Unfortunately, the proposed answer (getAbsoluteDir) in fact returns a new file using the same path as the file provided.

好吧,您可以跳过 lister 行,而改用 mydir.list()。但是,那里的代码不会“返回”任何东西——list() 返回目录中的文件,并且在那个答案中,它显示了对该列表的迭代。

How do use that string name to list the files that reside in that subdirectory?

您可以使用:

File dir=getDir(whateverYourStringNameIs);

dir.list();

或者:

File dir=new File(getFilesDir(), whateverYourStringNameIs);

dir.list();

基本上,在您的目录中获取一个 File 对象(您已经知道如何获取,因为您在一个目录上调用了 mkdir()),然后调用 list() 获取内容。一旦有了 File 对象,剩下的就是标准的 Java I/O。

The reason why I'm doing this is I'm passing a reference to this directory (because of the files it contains) through a bundle (across Activities).

假设这些都是你自己的 Activity ,你可以调用 File 上的 getAbsolutePath() 来为你的 获取一个 String > bundle 。然后,在另一侧,使用 new File(bundle.getString("whateverYouCalledIt")) 重构 File 对象。或者,在 Bundle 中传递一个字符串,该字符串代表您的应用内部存储部分中的相对路径,并将其与 getDir()getFilesDir() 构建指向同一路径的 File 对象。

关于java - 获取 Android 内部(私有(private))存储的任意子目录中的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17898840/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com