changer Progra~1 en Program Files

changer Progra~1 en Program Files - Java - Programmation

Marsh Posté le 23-07-2003 à 11:06:14    

Bonjour a tous!!!
 
Ce que je fais  :pfff: :
 
1 - Je récupère un path dans une string Path
(Path récupèrer :Path = c:/Progra~1/toto)
 
2 - Je déclare un File avec ce Path et un nom de fichier dans ce repertoire
(new File(Path + "toto.txt" );
 
Problème  :fou: :  
il me retourne java.io.FileNotFoundException  :pt1cable: Mais quand je lui code en dur c:/Program Files/toto/toto.txt il le trouve bien  :) .
 
Est ce que quelqu'un sais comment changer cette string avec un ~1 en un path complet pour initialiser un file.
 
Merci d'avance de vous creuser les neuronnes  :jap:

Reply

Marsh Posté le 23-07-2003 à 11:06:14   

Reply

Marsh Posté le 23-07-2003 à 11:11:19    

greg0159 a écrit :

Bonjour a tous!!!
 
Ce que je fais  :pfff: :
 
1 - Je récupère un path dans une string Path
(Path récupèrer :Path = c:/Progra~1/toto)
 
2 - Je déclare un File avec ce Path et un nom de fichier dans ce repertoire
(new File(Path + "toto.txt" );
 
Problème  :fou: :  
il me retourne java.io.FileNotFoundException  :pt1cable: Mais quand je lui code en dur c:/Program Files/toto/toto.txt il le trouve bien  :) .
 
Est ce que quelqu'un sais comment changer cette string avec un ~1 en un path complet pour initialiser un file.
 
Merci d'avance de vous creuser les neuronnes  :jap:  

il te manquerait pas un / ??

Reply

Marsh Posté le 23-07-2003 à 11:11:20    

Code :
  1. new File(Path,"toto.txt" );


 
Devrait mieux marcher.


---------------
Le Tyran
Reply

Marsh Posté le 23-07-2003 à 11:16:18    

Cela ne marche pas mieu Je ne comprend pas pourquoi il me génère cette exception
 
Et le path est "c : /Progra~1/toto"
 
Le gros problème c'est qu'il ne comprend pas le Progra~1 qui par default devrait etre remplacer par son nom complet cad "Program Files" pour ce cas ci.

Reply

Marsh Posté le 23-07-2003 à 11:21:53    

Si ca peux vous éclairer ma classe revien a :
 
 
package com.soamai.setup.ia;
 
import java.io.*;
 
public class test{
 
    public static void main( String arg[]){
   
   String sWincapDir = "D:/Progra~1/Wincap";
   int iTmp =0;
  try{
     
     
   
   System.out.println("wincapDir : "+sWincapDir);
     
   
   File f1 = new File (sWincapDir + "/bin/","Produit.cfg" );
   File f2 = new File (sWincapDir + "/bin/","Antredoc.CFG" );
   
   FileWriter fw = new FileWriter(f1, true);
   FileReader fr2 = new FileReader(f2);
   
   iTmp = fr2.read();
   System.out.println(iTmp);  
   while(iTmp!=-1){
   
    fw.write(iTmp);
    iTmp = fr2.read();
   
   }
   fw.close();
   fr2.close();
 
   }catch(Exception e){System.out.println("Exception : " + e);}
     
  }
}
 
Avec le path que je récupère en string est tel que la string déclarer dans la classe

Reply

Marsh Posté le 23-07-2003 à 13:36:40    

tu sais que tu peux désactiver les smileys et entourer ton code d'un bloc de code (bouton C/C++)

Reply

Marsh Posté le 23-07-2003 à 13:40:41    

Code :
  1. package com.soamai.setup.ia;
  2. import java.io.*;
  3. public class test{
  4.     public static void main( String arg[]){
  5.  
  6.    String sWincapDir = "DProgra~1/Wincap";
  7.    int iTmp =0;
  8.   try{
  9.    
  10.    
  11.  
  12.    System.out.println("wincapDir : "+sWincapDir);
  13.    
  14.  
  15.    File f1 = new File (sWincapDir + "/bin/","Produit.cfg" );
  16.    File f2 = new File (sWincapDir + "/bin/","Antredoc.CFG" );
  17.  
  18.    FileWriter fw = new FileWriter(f1, true);
  19.    FileReader fr2 = new FileReader(f2);
  20.  
  21.    iTmp = fr2.read();
  22.    System.out.println(iTmp); 
  23.    while(iTmp!=-1){
  24.  
  25.     fw.write(iTmp);
  26.     iTmp = fr2.read();
  27.  
  28.    }
  29.    fw.close();
  30.    fr2.close();
  31.    }catch(Exception e){System.out.println("Exception : " + e);}
  32.    
  33.   }


 
Ok merci pour l'info je ne suis pas encorer trop roder donc merci pour ton conseil

Reply

Marsh Posté le 24-07-2003 à 09:29:27    

Personne d'autre n'a d'idée s'il vous plait??
 
Je sais que normalement ca ne devrai pas poser de probleme  :pt1cable: le ~1 mais la il ne trouve pas les fichiers donc je suis un peu embetter...  :??:  
 
Si personne ne trouve tant pis et merci d'avoir checker ce post!!  :jap:

Reply

Marsh Posté le 24-07-2003 à 09:40:34    

tu peux nous copier/coller le message d'erreur intégral que tu obtiens ?


Message édité par noldor le 24-07-2003 à 09:40:50
Reply

Marsh Posté le 24-07-2003 à 09:48:52    

Code :
  1. java.io.FileNotFoundException: D:\Progra~1\Wincap\Bin\Produit.cfg (Le chemin d'accès spécifié est introuvable)
  2. 1.4.0_03
  3. wincapDir : D:/Progra~1/Wincap
  4. File D:\Progra~1\Wincap\Bin\Produit.cfg is missing !
  5. at java.io.FileOutputStream.openAppend(Native Method)
  6. at java.io.FileOutputStream.<init>(FileOutputStream.java:174)
  7. at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
  8. at java.io.FileWriter.<init>(FileWriter.java:59)
  9. at com.soamai.setup.ia.test.testWriteDOSFile(test.java:38)
  10. at com.soamai.setup.ia.test.main(test.java:74)


 
Voila j'espère que cela t'éclairera et mon JDK est le 1.4 au cas où

Reply

Marsh Posté le 24-07-2003 à 09:48:52   

Reply

Marsh Posté le 24-07-2003 à 09:56:40    

greg0159 a écrit :

Code :
  1. java.io.FileNotFoundException: D:\Progra~1\Wincap\Bin\Produit.cfg (Le chemin d'accès spécifié est introuvable)
  2. 1.4.0_03
  3. wincapDir : D:/Progra~1/Wincap
  4. File D:\Progra~1\Wincap\Bin\Produit.cfg is missing !
  5. at java.io.FileOutputStream.openAppend(Native Method)
  6. at java.io.FileOutputStream.<init>(FileOutputStream.java:174)
  7. at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
  8. at java.io.FileWriter.<init>(FileWriter.java:59)
  9. at com.soamai.setup.ia.test.testWriteDOSFile(test.java:38)
  10. at com.soamai.setup.ia.test.main(test.java:74)


 
Voila j'espère que cela t'éclairera et mon JDK est le 1.4 au cas où
 


c'est normal que tes chemins soient une fois avec des / et l'autre avec des \ ??

Reply

Marsh Posté le 24-07-2003 à 09:58:52    

Oui en fait je donne le path c:/toto/toto.txt pourle file et quand je fais un getAbsolutePath() il me les affiches \ mais c'est a cause du constructeur de file. Donc y'a pas d'inquietude de ce coté là!!

Reply

Marsh Posté le 24-07-2003 à 11:06:56    

Bon ben je vous remercie  :jap: j'ai vu que c'était un problème sur ma machine  :fou: puisque ca marche chez mes potes et pas chez moi  :pt1cable: (cela dit je ne sais toujours pas pourquoi cela ne marche pas chez moi  :sweat: )
 
Donc cesser de vous prendre la tete et encore merci...  :jap:  
 
 
 :sol:  :sol:  :sol:

Reply

Marsh Posté le 24-07-2003 à 11:12:04    

greg0159 a écrit :

Bon ben je vous remercie  :jap: j'ai vu que c'était un problème sur ma machine  :fou: puisque ca marche chez mes potes et pas chez moi  :pt1cable: (cela dit je ne sais toujours pas pourquoi cela ne marche pas chez moi  :sweat: )
 
Donc cesser de vous prendre la tete et encore merci...  :jap:  
 
 
 :sol:  :sol:  :sol:  


 
Tu bosse sous quel OS?


---------------
Le Tyran
Reply

Marsh Posté le 24-07-2003 à 11:18:06    

LetoII a écrit :


 
Tu bosse sous quel OS?


ca sent le NTFS avec les nom 8.3 virés ca non? On en parlait ya pas longtemps avec mareek et antp...

Reply

Marsh Posté le 24-07-2003 à 11:18:19    

Ne rigoler pas mais je bosse sous windows XP et sur eclipse comme ide de developpement.

Reply

Marsh Posté le 24-07-2003 à 11:19:50    

greg0159 a écrit :

Ne rigoler pas mais je bosse sous windows XP et sur eclipse comme ide de developpement.


 
Vérifie avec ton admin system, les nom 8.3 doivent être désactivés comme skeye la fait remarqué.
 

skeye9 a écrit :


ca sent le NTFS avec les nom 8.3 virés ca non? On en parlait ya pas longtemps avec mareek et antp...


C ce à quoi je pensais


Message édité par LetoII le 24-07-2003 à 11:20:54

---------------
Le Tyran
Reply

Marsh Posté le 24-07-2003 à 11:19:53    

Le NTFS est bien pour la sécuriter et la rapiditer mais je préfère la compatibilité donc toutes mes partitions sont en fat32
 
 :)

Reply

Marsh Posté le 24-07-2003 à 11:22:13    

je trouve ca ou ?? c'est dans les services? J'ai une vieille daube comme machine donc j'ai arreter quelques service je l'avoue et si c'est ca je serai dégouté :sweat:

Reply

Marsh Posté le 24-07-2003 à 11:25:21    

A noter que sauf erreur de ma part, la transformation des noms longs en noms courts est un mécanisme breveté... par Sun !

Reply

Marsh Posté le 24-07-2003 à 11:28:39    

oui je reconnais que ca doit marcher puisque cela marche chez les autres et pas chez moi! Mais je sais pas ce que j'ai fais avec cet machine mais enfin elle m'est très serviable tout de meme!!

Reply

Marsh Posté le 24-07-2003 à 11:47:04    

Est tu sur que le nom 8.3 de "Program Files" est bien "progra~1" ? Essaye un dir /x dans une console.

Reply

Marsh Posté le 24-07-2003 à 11:50:11    

oui je suis sure parce que je récupère ca dans un fichier qui a été modifier par un vieu programme et y'a bien écrit c:/Progra~1/toto

Reply

Marsh Posté le 24-07-2003 à 12:24:16    

As-tu le même problème avec d'autres répertoires ou fichiers à nom long ? Et avec un chemin relatif ?

Reply

Marsh Posté le 24-07-2003 à 16:21:06    

Oui a partir du moment ou le nom long est formulé en dos 8.3 mais c'est un problem de ma machine je vais la formater un ptit coup y'a que ca de vrai... ne vous en faites pas c pas une erreur importante si c'est juste sur ma machine que ca plante. :jap: encore a tous pour vous etre pancher sur mon pb

Reply

Marsh Posté le 25-07-2003 à 10:03:01    

greg0159 a écrit :

[...] mais c'est un problem de ma machine je vais la formater un ptit coup y'a que ca de vrai... [...]


les vieux réflexes windows...  :whistle:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 25-07-2003 à 10:12:27    

On est vendredi en effet. :D

Reply

Marsh Posté le 25-07-2003 à 12:44:13    

:)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed