2013-07-06 2 views
1
package javaapplication33; 

import java.io.File; 
import java.io.IOException; 


public class JavaApplication33 { 

public static void main(String[] args) throws IOException{ 


    File happyFile = new File("/happy.txt"); 
    if (happyFile.exists() == false) { 
     happyFile.createNewFile(); 
     System.out.println("the file is created"); 
    } else { 
     System.out.println("tHE FILE ALREADY EXSISTED "); 
    } 
    } 
} 

ici est mon erreur:Je suis en train d'enregistrer mon dossier sur le lecteur c et im obtenir une erreur

Exception in thread "main" java.io.IOException: The system cannot find the path specified 
at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
at java.io.File.createNewFile(File.java:883) 
at javaapplication33.JavaApplication33.main(JavaApplication33.java:14) 

Java Résultat: 1

  • J'ai essayé C: // & C:/cela ne fonctionnait toujours pas *
+2

Avez-vous essayé un dossier dans C: \? comme C: \ Temp, peut être lié aux permissions (écrire dans le dossier racine). – Ofiris

+0

si ce n'est pas nécessaire, n'utilisez pas le fichier C car il a besoin d'une autorisation. – pooyan

+1

Très bien, cela a fonctionné. Merci de votre aide. – pur3extrme

Répondre

2

Si vous devez écrire sur un chemin spécifique sous Windows, vous devez utiliser cité antislashs:

File happyFile = new File("c:\\mydir\\happy.txt"); 

Pour rendre le code générique, vous pouvez utiliser le séparateur de chemin et répertoire du system properties.

+0

+1 pour les antislashs échappés. –

2

Je ne pense pas que "/happy.txt" soit un chemin de fichier Windows valide. Essayez un chemin qui doit toujours être valide

import java.io.File; 
import java.io.IOException; 

public class WriteToDisk { 
    public static void main(String[] args) throws IOException { 
     String tempDir = System.getProperty("java.io.tempdir"); 
     String separator = File.pathSeparator; 
     File happyFile = new File(tempDir + separator + "happy.txt"); 
     if (!happyFile.exists()) { 
      happyFile.createNewFile(); 
      System.out.println("the file is created"); 
     } 
     else { 
      System.out.println("tHE FILE ALREADY EXISTED"); 
     } 
    } 
} 

Cette affiche « le fichier est créé » la première fois et « Le fichier existe déjà » tout moment ultérieur.

+0

'System.lineSeparator();' renvoie un saut de ligne '\ n', pas un séparateur de chemin' \ ' –

+0

Duh. Merci. Fixé. –

+0

+1 pour obtenir le bon séparateur de chemin système;) –

Questions connexes