Android,我怎样才能得到一个文件夹中的所有文件的列表?

我需要名称(string)的所有文件在res / raw /

我试过了:

File f = new File("/"); String[] someFiles = f.list(); 

它看起来像根目录是Android模拟器的根…而不是我的电脑根目录。 这有足够的道理,但并不能真正帮助我找出原始文件夹的存在位置。

谢谢!

更新:感谢所有伟大的答复。 看来,其中一些正在工作,但只是让我的一半。 也许更详细的描述将有助于…

我想获得所有的原始文件夹中的MP3文件,所以我可以得到所有的名字,然后将它们添加到一个URI播放随机MP3在以下方式…

 String uriStr = "android.resource://"+ "com.example.phone"+ "/" + "raw/dennis"; Uri uri = Uri.parse(uriStr); singletonMediaPlayer = MediaPlayer.create(c, uri); 

当我把“dennis.mp3”放到资源文件夹中时,它确实如预期的那样出现了……但是,使用上面的代码,我再也不能访问这个MP3了……除非有以下几点:

 String uriStr = "android.assets://"+ "com.example.phone"+ "/" + "dennis"; Uri uri = Uri.parse(uriStr); 

再次感谢迄今为止有帮助的答案。

Solutions Collecting From Web of "Android,我怎样才能得到一个文件夹中的所有文件的列表?"

要列出原始资产的所有名称,基本上是剥离了扩展名的文件名,可以这样做:

 public void listRaw(){ Field[] fields=R.raw.class.getFields(); for(int count=0; count < fields.length; count++){ Log.i("Raw Asset: ", fields[count].getName()); } } 

由于实际文件在电话上不仅仅是坐在文件系统上,所以这个名称是不相关的,您需要通过分配给该资源名称的整数来引用它们。 在上面的例子中,你可以得到这个整数:

 int resourceID=fields[count].getInt(fields[count]); 

这是你通过参考R.raw得到的同一个int,我们称之为资源

这段代码将从sdCard的“New Foder”中检索所有的文件。

  File sdCardRoot = Environment.getExternalStorageDirectory(); File yourDir = new File(sdCardRoot, "New Folder"); for (File f : yourDir.listFiles()) { if (f.isFile()) { String name = f.getName(); Log.i("file names", name); } } 

并确保在您的manifest.xml文件中添加android sd卡写入权限

我需要名称(string)的所有文件在res / raw /

设备上的res/raw/中没有文件。 那些是资源。 除了通过使用reflection遍历R.raw类的静态数据成员来获取各种ID名称和值之外,没有什么好的方法来迭代资源。

但并不能真正帮助我找出原始文件夹的存在位置。

作为一个文件夹,它只存在于你的开发机器上。 这不是设备上的文件夹。

您可以使用AssetManager :

据我记得,你将有列表(只是尝试不同的path):

 final String[] allFilesInPackage = getContext().getResources().getAssets().list(""); 

查看http://developer.android.com/reference/android/content/res/Resources.html通常可以通过getResources()获取与您的应用程序关联的资源实例&#x3002;

Resources类提供对http://developer.android.com/reference/android/content/res/AssetManager.html (参见getAssets()方法)的访问。 最后通过AssetManager.list()方法获得对打包(apk)文件的访问。 请享用!

Context ,你可以调用这样的东西:

 getResources().getAssets().list("thePath"); 

链接到文档