问题:如何以编程方式区分资产文件夹中的目录和常规文件?
使用AssetManager访问assets文件夹中的文件时,似乎无法确定文件实际上是文件还是目录。您从list
方法获取文件列表,然后使用open
方法打开文件。我想也许使用openFd
方法来获取资产文件描述符(然后随后请求正常的文件描述符)将为我提供一些信息。但是请求目录的文件描述符会导致IOException(这是有道理的,因为目录具有文件描述符意味着什么......?)。
目前,我依赖于IOException(由于tryng打开assets文件夹中的目录而产生),以确定文件是否实际上是一个目录。 (打开常规文件工作正常)。这似乎是一个坏主意。还有其他任何区分文件和目录的建议吗?
答案 0 :(得分:1)
我同意您对帖子的评论。但要回答您的问题,请将File对象指向assets目录
File root = new File("path/to/directory");
然后你可以像这样提取它的所有子文件和目录
File[] files = root.listFiles();
获得列表后,您可以确定使用File.isDirectory()的内容。
至于确定文件类型,就像使用String.subString()在上一个句点之后抓取字符一样简单。
希望这会有所帮助