【发布时间】:2017-06-16 23:44:07
【问题描述】:
我想用 java 代码重命名一堆文件。 我有重命名文件的代码:
public class NamingTest {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
// change file names in 'Directory':
System.out.println("enter the directory");
String absolutePath = keyboard.nextLine();
File dir = new File(absolutePath);
File[] filesInDir = dir.listFiles();
int i = 0;
System.out.println("enter the constant name");
String con = keyboard.nextLine();
for(File file:filesInDir) {
i++;
String name = file.getName();
System.out.println("enter the "+i+"next part");
String nxt = keyboard.nextLine();
String newName = i +"_"+ con + nxt+".pdf";
String newPath = absolutePath+ "\\"+ newName;
file.renameTo(new File(newPath));
System.out.println(name + " changed to " + newName);
}
} // close main()
} // close class
我在这段代码中有一个问题:该代码将新文件保存在给定目录的一步后退中,并且新重命名的文件具有最后一个目录名称。
示例:目录为“/Users/Omar/Documents/test”, 命名文件保存的位置是“/Users/Omar/Documents”,命名文件以“test/”为前缀。
真实示例:代码运行时他询问目录,我给他一个“/Users/Omar/Documents”,然后询问常量名(必须在所有文件上重复)我输入“m a s_”,然后永远文件,他要求下一个名称(文件与其他文件不同)。
我希望在“/Users/Omar/Documents/test”中获得一个名为“(number)m a s_(nxt).pdf”的文件。但代码给出的是“/test/(number) m a s_(nxt).pdf"。
我想为它制作一个 gui。
注意:我用的是 Mac
【问题讨论】:
-
"注意:我使用 Mac" - 注意:我使用咖啡 :-)
-
您能否编辑您的问题。我很难理解你的英语。或许您应该 1) 更清楚地解释代码应该做什么,以及 2) 给出它实际上做错了什么的清晰示例。
-
@StephenC 我可能使用调试器,但Malcolm 用电锯解决了他的问题(他从来没有遇到过同样的问题两次) .
-
好吧,奥马尔,如果你的英语能力很好,那么问题是你表达得不够清楚。
-
什么是“一拳文件”?