2

问题:您如何以编程方式区分资产文件夹中的目录和常规文件?

使用 AssetManager 访问 assets 文件夹中的文件时,似乎无法确定文件实际上是文件还是目录。您从list方法中获取文件列表,然后使用该open方法打开文件。我想也许使用该openFd方法获取资产文件描述符(然后请求普通文件描述符)会为我提供一些信息。但是请求目录的文件描述符会导致 IOException(这是有道理的,因为目录具有文件描述符意味着什么......?)。

目前我依靠那个 IOException (由于试图在 assets 文件夹中打开一个目录)来确定一个文件是否实际上是一个目录。(打开一个常规文件就可以了)。这似乎是个坏主意。还有其他区分文件和目录的建议吗?

4

1 回答 1

1

我同意你帖子上的评论。但要回答您的问题,请创建一个指向资产目录的 File 对象 File root = new File("path/to/directory");

然后你可以像这样提取它的所有子文件和目录 File[] files = root.listFiles();

获得列表后,您可以使用 File.isDirectory() 确定什么是什么。

至于确定文件类型,就像使用 String.subString() 来抓取最后一个句点之后的字符一样简单。

希望这可以帮助

于 2010-06-09T23:52:11.657 回答