2009-12-23 5 views
0

Je suis arrivé avec le code suivant ... mon document n'est pas créé. Je ne reçois aucun message d'erreur. En ce qui concerne l'API Java, j'ai tout fait dans le bon ordre. Le répertoire est créé de la bonne façon ... donc je ne dois pas m'inquiéter à ce sujet.Création d'un fichier dans un nouveau répertoire

Quelqu'un a eu une idée ou un indice où regarder?

public static void main(String[] args) throws Exception{ 
    String path = null; 
    String destination = "/myfolder/test/" + createRandomPath(path); 
    try { 
     boolean status; 
     status = new File(destination).mkdir(); 
    } catch (Exception e) { 
     System.out.println("Fehler: " + e.getMessage()); 
    } 

    File document = new File(destination + "temp.docx"); 

    //Edit: Here is the solution..Thank you 
    document.createNewFile(); 

    } 
    static String createRandomPath(String path){ 
    UUID uuid = UUID.randomUUID(); 
    path = uuid.toString().replace('-', 'A').substring(0,9); 
    System.out.println(path); 
    return path; 
    } 
+1

ce qui ne createRandomPath (chemin), où path = null , fais pour toi? – Sev

+0

édité :-) merci pour cet indice – bastianneu

+2

Encore un indice: je renommerais la variable locale 'Document' en un minuscule. Sinon, les gens pensent que 'Document' est une classe et 'createNewFile()' une méthode statique sur cette classe. –

Répondre

4

Vous devez appeler createNewFile() pour, err, créer un nouveau fichier sur le disque si c'est ce que vous demandez.

si vous avez besoin du code de la forme:

File f = new File("C:\\temp\\newfile.txt"); 
//new file does not exist on disk yet 
f.createNewFile(); 
//f should be created on disk now 
+0

vous avez raison .. :-) arrrgh eu la réponse tout le temps devant mon nez et ne pouvait pas le trouver. – bastianneu

+0

J'ai ajouté votre réponse à mon code ... avec un commentaire "Solution". Merci..Vote – bastianneu

+0

Bravo, Joyeux Noël! –

1

La ligne File Document... crée une instance de la classe File en mémoire. Comme le dit James B, vous devez alors créer le fichier, peut-être quelque chose comme ceci:

File doc = new File(destination + "temp.docx"); 
doc.createNewFile(); 

(Rappelez-vous envelopper cela dans un try... catch que vous aurez à piéger IOException)

+0

merci ... conseils utiles – bastianneu

0

J'ai modifié et exécuté à ma fin, j'ai modifié le chemin et exécuté "" c: \ monfichier \ test "+ createRandomPath (chemin);" Cela fonctionne.

public static void main(String[] args) throws Exception{ 
    String path = null; 
    String destination = "c:\\myfolder\\test" + createRandomPath(path); 
    try { 
     boolean status; 
     status = new File(destination).mkdir(); 
    } catch (Exception e) { 
     System.out.println("Fehler: " + e.getMessage()); 
    } 

    File document = new File(destination + "temp.doc"); 

    //Edit: Here is the solution..Thank you 
    document.createNewFile(); 

    } 
    static String createRandomPath(String path){ 
    UUID uuid = UUID.randomUUID(); 
    path = uuid.toString().replace('-', 'A').substring(0,9); 
    System.out.println(path); 
    return path; 
    } 
+0

Euh, avez-vous lu les commentaires et les réponses? – BalusC

0

Exécutez le code ci-dessous. Il travaillera

public class Test1{ 
    public static void main(String[] args) throws Exception 
    { 
     String path = null; 
     String destination = "/myfolder/test/" + createRandomPath(path); 
     try 
     { 
      boolean status; 
      status = new File(destination).mkdirs(); 
     } catch (Exception e) 
     { 
      System.out.println("Fehler: " + e.getMessage()); 
     } 

     File document = new File(destination + "/temp.docx"); 

     //Edit: Here is the solution..Thank you 
     document.createNewFile(); 

    } 

    static String createRandomPath(String path) 
    { 
     UUID uuid = UUID.randomUUID(); 
     path = uuid.toString().replace('-', 'A').substring(0, 9); 
     System.out.println(path); 
     return path; 
    } 

} 

Quand je lance au-dessus du code sur NetBeans, il a créé le fichier "temp.docx" dans "C: \ MonDossier \ test \ b75ba657A"

Questions connexes