0

いくつかの .mp4 ファイルの名前をそのフォルダーの名前に変更するプログラムを作成しようとしています。プログラムはいくつかのファイルで動作することがありますが、最終的にはヌル ポインター例外がスローされます。

私は複数の異なる方法を試しましたが、どれも正しく機能していないようで、Windows 7 関連の Java にはあまり詳しくありません。

誰でも問題を見ることができますか?乾杯。

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

2 に答える 2

0

新しいフォルダー内にいくつかのファイルがあるようです

  tempf = tempd.listFiles();

新しいフォルダー内にファイルがある場合、この行は null を返します

  tempd   = new File(temps);
  if (tempd.isDirectory()) { 
   your code
  }
于 2013-04-14T09:20:56.643 に答える
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"));

      }
   }
  }
 }
}
于 2015-08-18T04:48:14.293 に答える