Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HELP] java.io.FileNotFoundException: images/flags/AR.gif""""

6 réponses
Avatar
yvon.thoravalNO-SPAM
Bonjour,

un pb cornecultesque ;-)

si je fais :
flagStr = "images/flags/AR.gif";
flagTmp = new Image(d, flagStr);
ou :
flagStr = "images/flags/" + "AR.gif";
flagTmp = new Image(d, flagStr);

pas de pb, mais si je fais :

String image = (String) flagsStr[0];
flagStr = mFlagsPath + image;
try {
flagTmp = new Image(d, flagStr);
} catch (SWTException e) { }

avec flagsStr[0] = "AR.gif";
ça ne marche plus... j'ai vérifié caractère par caractère mon Array
flagsStr[] je ne vois ni blanc fautif, ni erreur de casse de plus je
fais exactement la même chose pour mes colors, là ça tourne...

si je fais un System.out.println de :
flagStr sui vant d'un autre pour "images/flags/AR.gif", je ne vois pas
de différences...

le path et ok et les noms d'images aussi (obtenus par cut'n paste des
noms d'images dans leur dossier).

j'ai essayé de caster dans tous les sens :

flagStr = ((String) ((String)mFlagsPath + (String)flagsStr[0]));
ça n'y change rien, je ne vois pas quoi suspecter dans un truc aussi
simple...
--
yt

6 réponses

Avatar
Patrick Gras
"Yvon Thoraval" wrote in message
news:1gnaugp.8xx9rgsu1rg6N%

Bonjour,

un pb cornecultesque ;-)

si je fais :
flagStr = "images/flags/AR.gif";
flagTmp = new Image(d, flagStr);
ou :
flagStr = "images/flags/" + "AR.gif";
flagTmp = new Image(d, flagStr);

pas de pb, mais si je fais :

String image = (String) flagsStr[0];
flagStr = mFlagsPath + image;
try {
flagTmp = new Image(d, flagStr);
} catch (SWTException e) { }

avec flagsStr[0] = "AR.gif";
ça ne marche plus... j'ai vérifié caractère par caractère mon Array
flagsStr[] je ne vois ni blanc fautif, ni erreur de casse de plus je
fais exactement la même chose pour mes colors, là ça tourne...

si je fais un System.out.println de :
flagStr sui vant d'un autre pour "images/flags/AR.gif", je ne vois pas
de différences...

le path et ok et les noms d'images aussi (obtenus par cut'n paste des
noms d'images dans leur dossier).

j'ai essayé de caster dans tous les sens :

flagStr = ((String) ((String)mFlagsPath + (String)flagsStr[0]));
ça n'y change rien, je ne vois pas quoi suspecter dans un truc aussi
simple...
--
yt


Hello,

Est-ce que tu as essayé de faire System.out.println("'"+flagStr+"'");

// flagStr entre des guillemets simple

Car si tu ne vois pas de différence, il ne reste que les espaces...

-Patrick

Avatar
yvon.thoravalNO-SPAM
Patrick Gras wrote:

Est-ce que tu as essayé de faire System.out.println("'"+flagStr+"'");


Non, mais comme je suis preneur de toute idée je viens juste de faire :
flagStr = mFlagsPath + "AR.gif";
flagStr = "'" + flagStr + "'";
System.out.println(flagStr);
try {
flagTmp = new Image(d, flagStr);
} catch (SWTException e) {
e.printStackTrace();
System.out.println();
}


qui me donne :

'images/flags/AR.gif'
org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException:
'images/flags/AR.gif' (No such file or directory))

ce qui me paraît tout-à-fait "normal" vu que mon image est
images/flags/AR.gif...
--
yt

Avatar
Patrick Gras
"Yvon Thoraval" wrote in message
news:1gnawwv.114hkwm11q43jsN%
Patrick Gras wrote:

Est-ce que tu as essayé de faire System.out.println("'"+flagStr+"'");


Non, mais comme je suis preneur de toute idée je viens juste de faire :
flagStr = mFlagsPath + "AR.gif";
flagStr = "'" + flagStr + "'";
System.out.println(flagStr);
try {
flagTmp = new Image(d, flagStr);
} catch (SWTException e) {
e.printStackTrace();
System.out.println();
}


qui me donne :

'images/flags/AR.gif'
org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException:
'images/flags/AR.gif' (No such file or directory))

ce qui me paraît tout-à-fait "normal" vu que mon image est
images/flags/AR.gif...
--
yt


Je parlais de mettre les guillemets dans le System.out.println, pas dans
directement dans flagStr...

Bon je parie que si tu ajoutes File flafFile = new File(flagStr); Tu vas
créer ton fichier ailleurs que là où se trouve ton image...

-Patrick


Avatar
yvon.thoravalNO-SPAM
Patrick Gras wrote:


Bon je parie que si tu ajoutes File flafFile = new File(flagStr); Tu vas
créer ton fichier ailleurs que là où se trouve ton image...


ben non, justement, le path est bon, d'ailleurs j'ai changé cette partie
pour ImageRegistry et là, avec le même path et les mêmes noms de
fichiers images, c'est OK (code + bas).

ce n'est pas la première fois qu'avec java ce genre de truc marche **
aléatoirement **, je ne pige pas pkoi.

le problème rencontré était que :

String imageStr = "images/flags/AR.gif"""""; MARCHE MAIS :
String imageStr = mFlagsPath + flagsStr[0]; NE MARCHE PAS.
le deuxième exemple donnant exactement la même String...

Ca me gène pcq je voudrais créer par java, à la volée, par exemple, une
image RougeRose (icône dans swt TreeTable) à partir de la
"concatenation" de Rouge.gif et Rose.gif.

<code>
private static String mFlagsPath = "images/flags/";

private static String[] flagsStr = { "AR.gif""""", "AT.gif""""",
"AU.gif""""", "BE.gif""""", "BG.gif""""", "CA.gif""""",
"CH.gif""""", "CL.gif""""", "CY.gif""""", "CZ.gif""""",
"DE.gif""""", "ES.gif""""", "FR.gif""""", "GB.gif""""",
"GR.gif""""", "HR.gif""""", "HU.gif""""", "IL.gif""""",
"IT.gif""""", "JP.gif""""", "LB.gif""""", "LU.gif""""",
"MD.gif""""", "MK.gif""""", "MT.gif""""", "MX.gif""""",
"NZ.gif""""", "PT.gif""""", "RO.gif""""", "SI.gif""""",
"TR.gif""""", "US.gif""""", "UY.gif""""", "ZA.gif""""" };

private static String mColorsPath = "images/colors/";

private static String[] colorsStr = { "Blanc.gif", "Clairet.gif",
"Jaune.gif", "null.gif", "Rose.gif", "Rouge.gif" };

private static ImageRegistry image_registry;

public static URL newURL(String url_name) {
try {
return new URL(url_name);
} catch (MalformedURLException e) {
throw new RuntimeException("Malformed URL " + url_name, e);
}
}

public static ImageRegistry getImageRegistry() {
if (image_registry == null) {
image_registry = new ImageRegistry();
for (int f = 0; f < flagsStr.length; f++) {
String fileUrl = "file:" + mFlagsPath + flagsStr[f];
image_registry.put(getImageLabel(flagsStr[f]),
ImageDescriptor
.createFromURL(newURL(fileUrl)));
}
for (int c = 0; c < colorsStr.length; c++) {
String fileUrl = "file:" + mColorsPath + colorsStr[c];
image_registry.put(getImageLabel(colorsStr[c]),
ImageDescriptor
.createFromURL(newURL(fileUrl)));
}
}
return image_registry;
}

private static String getImageLabel(String image) {
String[] list = image.split(".");
return list[0];
}
</code>
--
yt

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:

Peut-être que mon pb vient de là :
String imageStr = "images/flags/AR.gif"""""; MARCHE MAIS :
----------------------------------------^^^^^

[...]
<code>
private static String mFlagsPath = "images/flags/";

private static String[] flagsStr = { "AR.gif""""", "AT.gif""""",
--------------------------------------------------^^^^^---------^^^^^^


ce qui résulte d'un copier-coller depuis eclipse où je ne vois que :

String imageStr = "images/flags/AR.gif";
[...]
private static String[] flagsStr = { "AR.gif", "AT.gif",

Un caractère fantôme vu dans un cas, pas dans l'autre ????
--
yt

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:

Un caractère fantôme vu dans un cas, pas dans l'autre ????


je viens de faire un test sur fr.test, j'ai bien un pb de caractère
fantôme eclipse : "AR.gif",

me donne "AR.gif""""", sur fr.test...
--
yt