问题:如何以编程方式区分资产文件夹中的目录和常规文件?确定资产文件夹中文件的文件类型
当使用AssetManager访问资产文件夹中的文件时,似乎无法确定文件实际上是文件还是目录。您从list
方法获得文件列表,然后使用open
方法打开文件。我想可能使用openFd
方法获取资产文件描述符(然后请求正常的文件描述符)会提供一些信息。但是请求一个目录的文件描述符会导致一个IOException(这很有意义,因为这对于一个目录有一个文件描述符意味着什么?)。
目前我依靠IOException(由于尝试在资产文件夹中打开一个目录而产生)以确定文件是否实际上是一个目录。 (打开一个普通的文件工作得很好)。这似乎是一个坏主意。任何其他建议来区分文件和目录?
你如何安排你的文件到资产目录?你不能保持档案 与文件夹分开,而不是混合所有的东西吗? – 2010-06-09 22:01:39
同意。你是放置在“assets /'目录中的人。因此,你不应该猜测什么是和不是一个目录。 – CommonsWare 2010-06-09 22:51:52
无论您如何将文件放在'assets /'文件夹中,这个问题都存在。 list方法返回位于请求的目录路径(例如'image.jpg','music.mp3','Tools')中的所有文件和的String []阵列。如果你想在'assets /'里面有任何的目录结构,你会遇到这个问题。 – ChaimKut 2010-06-10 12:58:29