2016-11-26 7 views
-1

ファイル名から文字列を削除できるPythonプログラムがありますが、Javaを使用してヘルプを探しています。Javaを使用してファイルの名前を変更する方法

この

import glob,os 
from tkinter import filedialog 
import re 

#in_path = filedialog.askdirectory() # if want to ask for directory 

os.chdir(os.path.join("G:\\")) #change to os.chdir(os.path.join(in_path)) to used selected dir 
for files in glob.glob("*.mp4"): #get mp4 files 
    filename = os.path.splitext(files) 
    ext=filename[-1] 
    thefile = filename[0] 
    if "v" in thefile: #if there is version, check where the letter "v" is 
     ind = thefile.index("v") 
     change = thefile[:ind].replace(".","").replace("_","")+thefile [ind:].replace("_","")+ext 
    else: 
     change = thefile.replace(".","")+ext 
    os.rename(files,change) 
+0

たぶん、あなたは[varycode](https://www.varycode.com/) –

+1

たちを提示する必要がありますどのようにrenameTo()が完全に動作するので、新しい名前のブランクファイルが残ってしまうかもしれません... –

答えて

0
import java.io.*; 

public class Renamer { 

    public void renameFiles(String dir, String search) throws IOException{ 
     File directory = new File(dir); 
     File[] directoryListing = directory.listFiles(); 
     if (directoryListing != null) { 
      for (File child : directoryListing) { 
       if(child.getName().contains(search)){ 
        int start = child.getName().indexOf(search); 
        String newFileName = child.getName().substring(0, start); 
        File newFile = new File(newFileName); 
        child.renameTo(newFile); 
       } 
      } 
     } 
    } 
} 

に似たもの、それが動作するはずビット、あなたが何をしたいのかのいくつかは、OSがファイルを処理する方法についての具体的なOSすることができ、これを試してみてください。基本的にこれは文字列を検索し、その文字列の前にあるものだけを含むようにファイルの名前を変更します。また、指定されたディレクトリ内のすべてのファイルに対して実行します。

特定のファイル拡張機能のみを実行する機能は追加しませんでしたが、実装するのは難しくありません。

+0

いないことを確認を試すことができます私たちはあなたを理解していますが、一部のJavaコードではなく、Pythonの –

+0

newFileNameは空白に戻ってきています。検索対象:unt 子どもの名前untitled.3ds 印刷名前の変更 子の名前の印刷untitled.stl 印刷名の変更 –

0

私はいくつか変更を加えましたが、ファイルの名前が変更されてプロジェクトディレクトリに移動されていることに気付きました。私はパスを追加しようとしましたが、運はありません。

public class Test { 

public static String folder = new String("C:/Users/XXX/XXX/XXX"); 
static String temp = "es"; 


public static void main(String[] args) throws IOException { 
    //Display Message on Screen 
    //System.out.println(String.format("%s", "Reading Files under the folder " + folder)); 
    try { 
     renameFiles(folder, temp); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

public static void renameFiles(String dir, String search) throws IOException { 
    System.out.println("Searching for: " + search); 
    File directory = new File(dir); 
    File[] directoryListing = directory.listFiles(); 

    if (directoryListing != null) { 
     for (File child : directoryListing) 
      if (child.getName().contains(search)) { 
       int start = child.getName().indexOf(search); 
       System.out.println("Printing Child Name " + child.getName()); 
       String newFileName = child.getName().replace(search, ""); 
       System.out.println("Printing Rename " + dir + "/"+ newFileName); 
       File newFile = new File(newFileName); 
       child.renameTo(newFile); 
      } 
    } 
} 

}

関連する問題