Utilitaires : Différence entre versions
De EjnTricks
m |
(Aucune différence)
|
Version actuelle en date du 13 juillet 2011 à 00:26
Sites Utiles
Développement Web
Les images proposées sont organisées par thèmes et format. Lorsqu'un thème est apprécié, il est fastidieux de télécharger une part une les images, d'autant plus si l'ensemble des formats est souhaités. Le programme JAVA suivant permet de télécharger l'ensemble des icônes pour un sujet donnés. Les fichiers images ont pour URL: http://www.iconarchive.com/icons/ROOT/FORMATxFORMAT/NAME Où:
- ROOT: spécification commune
- FORMAT: Valeur numérique de la taille des images, 16, 32, 48 ou 128
- NAME: Nom de l'image
Source
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
public class SectionDownloader {
private static int BUFFER = 2048;
public static void main(String[] args) {
SectionDownloader sectionDownloader = new SectionDownloader();
sectionDownloader.setRootUrl("http://www.iconarchive.com/icons/flameia/rabbit-xp");
sectionDownloader.setTargetFolder("E:/tmp/RabbitIcons");
sectionDownloader.setFormats(new String[] {"128", "48", "32", "16"});
sectionDownloader.setIcones(new String[]
{"Jaguar-like-icon.png", "MacOs-fan-icon.png", "OSX-icon.png",
"Os-9-icon.png", "Panther-like-icon.png", "Shutdown-icon.png",
"Startup-icon.png", "appearance-icon.png", "apple-menu-icon.png",
"applications-2-icon.png", "applications-icon.png", "carrot-HD-icon.png",
"carrot-folder-icon.png", "chat-icon.png", "clipboard-icon.png",
"control-panels-icon.png", "control-strip-icon.png", "desktop-icon.png",
"disk-1-icon.png", "disk-2-icon.png", "disk-3-icon.png",
"documents-icon.png", "downloads-icon.png", "empty-icon.png",
"extensions-icon.png", "favorites-icon.png", "find-icon.png",
"first-aid-icon.png", "fonts-icon.png", "full-icon.png",
"games-icon.png", "help-icon.png", "home-icon.png",
"info-icon.png", "internet-icon.png", "library-icon.png",
"mail-icon.png", "movies-icon.png", "music-icon.png",
"pictures-icon.png", "preferences-icon.png", "print-icon.png",
"public-icon.png", "rabbit-HD-icon.png", "rabbit-folder-icon.png",
"user-icon.png", "users-icon.png", "utilites-icon.png",
"zip-brown-icon.png", "zip-orange-icon.png"});
sectionDownloader.download();
}
private String[] formats;
private String[] icones;
private String rootUrl;
private String targetFolder;
private void copyStream(InputStream in, OutputStream out) throws Exception {
try {
byte[] buffer = new byte[BUFFER];
int numRead;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
}
} catch (Exception exception) {
throw exception;
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ioe) { }
try {
if (out != null) {
out.close();
}
} catch (IOException ioe) { }
}
}
public void download() {
String targetPath;
String targetFile;
String url;
for (String format : formats) {
System.out.println ("Téléchargement du format: " + format);
targetPath = targetFolder + "/" + format + "x" + format;
File folder = new File(targetPath);
folder.mkdirs();
for (String icone : icones) {
System.out.println ("Téléchargement de l'icone: " + icone);
targetFile = targetPath + "/" + icone;
url = rootUrl + "/" + format + "/" + icone;
try {
download(url, targetFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private void download(String url, String targetPath) throws Exception {
URL targetUrl = new URL(url);
OutputStream out = new BufferedOutputStream(new FileOutputStream(targetPath));
URLConnection conn = targetUrl.openConnection();
InputStream in = conn.getInputStream();
copyStream(in, out);
}
public void setFormats(String[] formats) {
this.formats = formats;
}
public void setIcones(String[] icones) {
this.icones = icones;
}
public void setRootUrl(String rootUrl) {
this.rootUrl = rootUrl;
}
public void setTargetFolder(String targetFolder) {
this.targetFolder = targetFolder;
}
}