【发布时间】:2011-03-01 21:50:09
【问题描述】:
问题:您如何以编程方式区分资产文件夹中的目录和常规文件?
使用 AssetManager 访问 assets 文件夹中的文件时,似乎无法确定文件实际上是文件还是目录。您从list 方法获取文件列表,然后使用open 方法打开文件。我想也许使用openFd 方法来获取资产文件描述符(然后请求普通文件描述符)会为我提供一些信息。但是请求目录的文件描述符会导致 IOException(这是有道理的,因为目录具有文件描述符意味着什么......?)。
目前,我依靠 IOException(由于试图打开 assets 文件夹中的目录)来确定文件是否实际上是目录。 (打开一个常规文件就可以了)。这似乎是个坏主意。还有其他区分文件和目录的建议吗?
【问题讨论】:
-
您如何将文件排列到资产目录中?您不能将文件与文件夹分开而不是混合在一起吗?
-
同意。您是放入
assets/目录内容的人。因此,您无需猜测什么是目录,什么不是目录。 -
无论您如何将文件放在
assets/文件夹中,都存在此问题。list方法返回一个String[]数组,该数组包含位于请求的目录路径中的所有文件和目录(例如,image.jpg、music.mp3、Tools)。如果你想在assets/中拥有任何类型的目录结构,你会遇到这个问题。 -
更重要的是,您必须将事情分开。恕我直言,这是一个设计问题。是否有正当理由不能以这样的方式组织文件? assets/audio/*.mp3 assets/pics/*.png 现在我很好奇 :)
标签: android directory filesystems assets