要获取文件名,我会使用一个额外的参数,即原始路径。您可以遍历原始目录中的所有文件以获取文件名。如果您有文件名,则可以使用评论中提到的链接之一...
这将是您的最终解决方案(未经测试):
public static void CopyImagesFromResourceToStorage(Context c,int[] resources,String path, String originalpath)
{
// Get the directory of your original files
File dir = new File(originalpath);
// List all files in that directory
File[] files = dir.listFiles();
// Loop through all the files in your original directory
for(File original: files)
{
// Create a filename: <target_directory> + original.getName();
String filename = path + "\\" + original.getName();
Bitmap bm = BitmapFactory.decodeResource(c.getResources(), resources[i]);
try {
FileOutputStream out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
请务必关闭 FileOutputStream,并进行一些额外检查以查看 File[] 文件实际上是保存文件而不是目录。
注意:如果你真的使用资源文件夹,你也可以使用这样的东西:
Field[] drawables = android.R.drawable.class.getFields();
for (Field f : drawables) {
try {
System.out.println("R.drawable." + f.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
循环资源