2016-05-28 13 views
0

Ich versuche, einen Code zu schreiben, mit dem ich eine bestimmte Datei umbenennen (mit bekannten Namen und Verzeichnis) mit einer TXT-Datei, die eine Liste enthält Namen. Vor allem möchte ich eine Episode mit einer TXT-Datei umbenennen, die die Namen aller Episoden in dieser Saison hat.Benennen Sie eine bekannte Datei mit einer Liste von Zeichenfolge aus einer TXT-Datei

Dies ist der Code, den ich schrieb: Hauptklasse:

import java.io.IOException; 


public class Main { 

    public static void main(String[ ] args) throws IOException { 
      String file_name = "C:/Users/home/Desktop/Friends season 2 titles.txt"; 
      try { 
       ReadFile file = new ReadFile (file_name); 
       String[] arrLines = file.OpenFile(); 
       int i; 
       /*for (i=0; i < arrLines.length; i++) { // perhaps i'll use this loop later on... 
       System.out.println(arrLines) ; 
       } 
       */ 
       RenameFile newFile = new RenameFile(); 
       String file2_name = "C:/Users/home/Desktop/friends_s02e01_720p_bluray_sujaidr.mkv"; 
       newFile.RenameSingleFile(arrLines[0], file2_name); 
      } 
      catch (IOException e) { 
       System.out.println(e.getMessage()); 

      } 
    } 
} 

ReadFile- Klasse:

import java.io.IOException; 
import java.io.FileReader; 
import java.io.BufferedReader; 

public class ReadFile { 
    private String path; 
    public ReadFile(String filePath){ 
     path = filePath; 
    } 
    int readLines() throws IOException { 
     FileReader file_to_read = new FileReader(path); 
     BufferedReader bf = new BufferedReader(file_to_read); 

     @SuppressWarnings("unused") 
     String aLine; 
     int numOfLines = 0; 

     while ((aLine = bf.readLine()) != null){ 
      numOfLines++; 
     } 
     bf.close(); 
     return numOfLines; 

    } 
    public String[] OpenFile() throws IOException { 


     FileReader fr = new FileReader(path); 
     BufferedReader textReader = new BufferedReader(fr); 

     int numberOfLines = readLines(); 
     String[] textData = new String[numberOfLines]; 
     for (int i=0; i < numberOfLines; i++) { 
     textData = textReader.readLine(); 
     } 
     textReader.close(); 
     return textData; 
    } 

} 

RenameFile Klasse:

import java.io.File; 
public class RenameFile { 
    public void RenameSingleFile(String file1_path, String file2_path){ 
     File oldName = new File (file1_path); 
     File newName = new File (file2_path); 

     if(oldName.renameTo(newName)) { 
      System.out.println("The file has been renamed to: " +newName); 
      } else { 
      System.out.println("The file could not be renamed."); 
      } 
    } 
} 

Aus irgendeinem Grund, wenn ich laufe diese Programm bekomme ich diese Nachricht in der Konsole: "Die Datei konnte nicht re named. ", was bedeutet, dass etwas mit meiner RenameSingleFile-Methode (oder mit den Parametern file1_path und file2_path dieser Methode) nicht stimmt.

Ich weiß nicht, was mit diesem Stück Code falsch ist ...

+0

Sie sollten beide Namen zusammen mit dieser Fehlermeldung ausgeben, um das Problem zu klären. –

Antwort

1

In Ihrem RenameSingleFile Methode sollten Sie setzen file2_name (der Titel umbenannt werden) als ersten Parameter und schließen Sie den Verzeichnispfad und Dateityp beim Benennen:

newFile.RenameSingleFile(file2_name, "C:/Users/home/Desktop/" + arrLines[0] + ".mkv") 
+0

Anfängerfehler (beide). Vielen dank für Deine Hilfe! –

Verwandte Themen