}
public static void extractFiles(AbstractBlobStore store, String listingId, String target) throws IOException {
String listing = new String(BlobStoreInputStream.readFully(store, listingId), "UTF-8");
JsopTokenizer t = new JsopTokenizer(listing);
File targetDir = new File(target);
targetDir.mkdirs();
t.read('{');
if (!t.matches('}')) {
do {
String file = t.readString();
t.read(':');
String id = t.readString();
byte[] data = BlobStoreInputStream.readFully(store, id);
File outFile = new File(targetDir, file);
outFile.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(outFile);
try {
out.write(data);
} finally {
out.close();
}
} while (t.matches(','));
}
t.read('}');
}