2016-06-29 2 views
1

Je reçois une erreur à la ligne 58 qui indique que le fichier n'est pas trouvé, mais que le PrintStream ne doit pas avoir créé le fichier? (Remarque: Aucun fichier n'est créé du tout.)PrintStream ne crée pas de fichier?

Merci!

WhyDoINeedToAddMoreDetailIAlreadySaidWhatINeedToSay

import java.io.*; 
 
import java.util.*; 
 
import java.text.*; 
 

 
public class DownloadsFolderCleanup { 
 
    public static String directory = "C:\\Users\\User\\Downloads"; 
 
    
 
    public static void main(String[] args) throws FileNotFoundException { 
 
     File[] files = (new File(directory)).listFiles(); 
 
     if (files.length - 1 == 0) { 
 
     System.out.println("Downloads folder is already empty!"); 
 
     } 
 
     else { 
 
     ArrayList<File> markedFiles = new ArrayList<File>(); 
 
     int numInstallers = 0, numIncompleteDownloads = 0; 
 
     for (File file : files) { 
 
      String fileName = file.getName(); 
 
      if (fileName.substring(fileName.length() - 4,fileName.length()).equals(".exe")) { 
 
       if (fileName.toLowerCase().contains("install") || fileName.toLowerCase().contains("setup")) { 
 
        markedFiles.add(file); 
 
        numInstallers++; 
 
        System.out.println('"' + fileName + '"' + " marked for deletion. Reason: Installer"); 
 
       } 
 
      } 
 
      if (fileName.length() > 22) { 
 
       if (fileName.substring(0,11).equals("Unconfirmed") && fileName.substring(fileName.length() - 11, fileName.length()).equals(".crdownload")) { 
 
        markedFiles.add(file); 
 
        numIncompleteDownloads++; 
 
        System.out.println('"' + fileName + '"' + " marked for deletion. Reason: Incomplete download"); 
 
       } 
 
      } 
 
     } 
 
     System.out.println("- - - - - - - - - - - - - - - - - - - -"); 
 
     System.out.println("Total # of files scanned: " + (files.length - 1)); 
 
     System.out.println("Total # of junk files found: " + markedFiles.size()); 
 
     System.out.println("Installers found: " + numInstallers); 
 
     System.out.println("Incomplete download files found: " + numIncompleteDownloads); 
 
     if (markedFiles.size() == 0) { 
 
      System.out.println("No junk files were found!"); 
 
     } 
 
     else { 
 
      System.out.print("Please confirm removal of all identified files. CANNOT BE UNDONE! Y/N: "); 
 
      Scanner input = new Scanner(System.in); 
 
      if (input.nextLine().equalsIgnoreCase("Y")) { 
 
       System.out.println("All marked files will be permanently deleted in 5 seconds."); 
 
       for (int c = 4; c > 0; c--) { 
 
        sleep1second(); 
 
        System.out.println(c + "..."); 
 
       } 
 
       sleep1second(); 
 
       DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm"); 
 
       Date date = new Date(); 
 
       PrintStream log = new PrintStream(new File(dateFormat.format(date) + " Download Folder Cleanup Log.txt")); 
 
       for (File file : markedFiles) { 
 
        System.out.println('"' + file.getName() + '"' + " deleted."); 
 
        file.delete(); 
 
        log.println(file.getName()); 
 
       } 
 
       log.close(); 
 
      } 
 
     } 
 
     } 
 
     System.out.println(); 
 
     System.out.println("Cleanup process complete!"); 
 
    } 
 
    
 
    public static void sleep1second() { 
 
     try { 
 
      Thread.sleep(1000); 
 
     } 
 
     catch(InterruptedException ex) { 
 
      Thread.currentThread().interrupt(); 
 
     } 
 
    } 
 
}

Répondre

0

Je devine que depuis votre DateFormat"MM/jj/aaaa HH: mm" contient "/" (slash), ce chemin est invalide et puisque vous faites un fichier à un chemin qui contient dateFormat.format(date), le fichier ne peut pas être fait.

Dans Windows les éléments suivants sont des caractères interdits:

* . "/\ [ ] : ; | = , 
+0

Eh oui, que ce soit réglé il. J'ai oublié les personnages interdits. Merci beaucoup! – Locke

+0

Content de vous aider: D –