2016-06-29 12 views
1

파일을 찾을 수 없다는 오류가 58 행에 표시되지만 PrintStream이 파일을 생성하지 않아야합니까? (참고 : 파일이 전혀 생성되지 않습니다.)PrintStream이 파일을 생성하지 않습니까?

고마워요!

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(); 
 
     } 
 
    } 
 
}

답변

0

나는 당신의 DateFormat이후 같은데요 WhyDoINeedToAddMoreDetailIAlreadySaidWhatINeedToSay "MM/DD/YYYY의 HH : mm"는 포함 "/"(슬래시), 그 경로는 유효하지 않으며 dateFormat.format(date)이 포함 된 경로에서 파일을 만들고 있기 때문에 파일을 만들 수 없습니다. 이 그것을 고정

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

그래 : 윈도우에서

는 문자를 금지 다음과 같습니다. 나는 금단의 문자들을 잊었다. 감사합니다. – Locke

+0

다행 : D –