ファイル名を取得するには、追加のパラメーターである元のパスを使用します。元のディレクトリ内のすべてのファイルをループして、ファイル名を取得できます。ファイル名がある場合は、コメントに記載されているリンクのいずれか...
これが最終的な解決策になります(未テスト):
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[] ファイルが実際にディレクトリではなくファイルを保持していることを確認してください。
注: resouces フォルダーを実際に使用する場合は、次のようなものも使用できます。
Field[] drawables = android.R.drawable.class.getFields();
for (Field f : drawables) {
try {
System.out.println("R.drawable." + f.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
リソースをループするには