2013-04-14 4 views
0

Я пытаюсь создать программу, которая переименовывает несколько файлов .mp4 в имя папки, в которой она находится. Программа иногда работает с несколькими файлами, но в конечном итоге выдает исключение из нулевого указателяПереименование нескольких файлов в имена папок на окнах

Я пробовал несколько разных способов, но ни один из них не работает должным образом, и я не очень хорошо разбираюсь в соответствующей 7-оконной версии Windows 7.

Может ли кто-нибудь увидеть проблему? Приветствия.

public static void main (String []args) throws InterruptedException 
{ 
String dir = "D:\\New folder"; 

File directory = new File(dir); 
File[] files = directory.listFiles(); 

File tempd; 
File[] tempf; 
String temps; 
int filecount = 0; 

for (int index = 0; index < files.length; index++) 
{  
temps = files[index].toString(); 
tempd = new File(temps); 
tempf = tempd.listFiles(); 

for (int i = 0; i < tempf.length; i++) 
{ 
String[] tempsRel = temps.split("\\\\"); 

if (tempf[i].toString().endsWith("mp4")) 
{ 
boolean success = tempf[i].renameTo(new File(dir + "\\" + tempsRel[tempsRel.length-1] + ".mp4")); 
if (success) 
{ 
System.out.println("RENAMED FILE ==> " + tempsRel[tempsRel.length-1] + ".mp4"); 
}}}} 

System.exit(0); 
} 
+0

Отправьте трассировку стека. – AlexR

ответ

0

Это звучит у вас есть какие-то файлы в новую папку

tempf = tempd.listFiles(); 

эта строка будет возвращать нулевое значение, если у вас есть файл внутри новой папки проверки, если tempd это каталог, прежде чем список файлов внутри

tempd = new File(temps); 
    if (tempd.isDirectory()) { 
    your code 
    } 
+0

Спасибо, кучи, это решение отлично работало! – user2279253

0

Это переименование всех файлов в директории

import java.io.File; 
import java.util.Scanner; 

public class RENAME { 
public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    System.out.print("Enter folder name "); 
    File old = new File(s.nextLine()); 
    for(File f :old.listFiles()){ 
     if(f.isFile()) 
     { 

      f.renameTo(new File(f+".png")); 

     } 
    } 
    } 
} 
} 
Смежные вопросы