2011-01-12 3 views
0

У меня есть объект файла в Java, который представляет собой путь к каталогу:Изменение имени глубочайшего каталога в объекте File

C:\foo\foo\bar 

... и я хотел бы изменить это:

C:\foo\foo\newname 

Я не имею в виду переименование фактического каталога, но, просто изменяя путь в объекте File. Может ли кто-нибудь показать мне, как я могу это сделать? Должен ли я использовать строковые функции для этого или есть некоторая встроенная функция Java, которую я могу использовать?

Спасибо.

ответ

2

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

File orig = new File("C:\\foo\\foo\\bar"); 
File other = new File(orig.getParentFile(), "newname"); 
0

Я думаю, что вы можете только создать новый File объект с новым путем:

File f2 = new File("C:\\foo\\foo\\newname") 

ли это сделать какой-либо побочный эффект на ваш код?

0

Попробуйте следующее:

import java.io.File; 
public class MainClass { 
    public static void main(String[] a) { 
    File file = new File("c:\\foo\\foo\\bar"); 
    file.renameTo(new File("c:\\foo\\foo\\newname")); 
    } 
} 

Надеется, что это помогает.

+0

Он не хочет, чтобы фактическое имя файла изменилось. – Tom

0

Вы можете использовать строковое представление объекта File и выполнить поиск последнего/с помощью indexOf(), после чего вы измените значение после него и создадите новый объект File.

+1

Использовать File.separatorChar не. – Tom

+0

Да, ты прав! – Tobias

0

Я думаю, вам нужно что-то вроде этого.

String sourcePath = "C:\\foo\\foo\\bar"; 
String newName = "newname"; 
File source = new File(sourcePath); 
File dest = new File(source.getParent() + File.separator + newName); 
source.renameTo(dest); 
1

Там нет такого метода в Java, который изменяет путь для объекта File, однако вы можете получить путь к файлу с GetPath() или getAbsolutePath(). Я думаю, что создание нового файла на этом пути.

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