2013-05-16 2 views
0

У меня есть запрос метод, в котором параметр приходит как имя файла, что при отладке я проанализировал, как показано ниже:Извлечение имени файла из переменной динамически

private processfile (string filePath) 

{ 

} 

Теперь этот путь к файлу может быть как:

C:\abc\file1.txt 
or 
C:\abc\def\file1.txt 
or 
C:\ghj\ytr\wer\file1.txt 

Теперь мой вопрос в том, что я должен извлечь имя файла только и нужно хранить в строковом параметре. Так что я должен хранить file1.txt в строке, скажем, в качестве параметра строки s, так что, наконец s будут сохранены как

String s = file1.txt 

Как этого добиться?

ответ

10

Это должно сделать трюк

String s = new File(filepath).getName() 

хотя бы переименовать FilePath в Filepath.

Вы можете найти File#getName() документация here

+2

+1 чистый код! – ajduke

3

Вы можете использовать indexOf и substring для этого случая:

String s = filepath.substring(filepath.lastIndexOf(File.separator)+1); 

File.getName также принимает подобный подход, см Источник ниже:

public String getName() { 
    int index = path.lastIndexOf(separatorChar); 
    if (index < prefixLength) return path.substring(prefixLength); 
    return path.substring(index + 1); 
    } 
+2

Лучше сменить '' \\ '' на 'File.separator', чтобы сделать его общим. – Vrushank

+0

правый, измененный код – harsh

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