2011-09-29 128 views
3

我想我有一个简单的问题,但我无法弄清楚。我想获取文件的目录。获取文件的目录

例: 路径= /mnt/sdcard/music/music.mp3

应该返回 '音乐'

public String getDir(String pathAudioFile) 
{ 
    File f = new File(pathAudioFile); 

    return f.??? 
} 

回答

3
f.getParentFile().getName() 

将返回只是“音乐”,剥离leadi ng路径元素。

7
f.getParent(); // returns directory String 
f.getParentFile(); // returns File directory object 
1

在这里你去

File file = new File(pathAudioFile); 
String parent = file.getParent(); 
System.out.println("Parent directory is : " + parent); 
1
public String getDir(String pathAudioFile) 
.. 
    return f.getParent(); 

但代码应该将返回String代表一个File。它应该返回一个File

public File getDir(String pathAudioFile) 
.. 
    return f.getParentFile(); 

IMO在J2SE的所有方法,旨在接受String代表一个File应弃用。如果方法需要File给它一个File


扩展这一理念..

@deprecated Use getDir(java.io.File) instead. 
public File getDir(String pathAudioFile) 
{ 
    return getDir(new File(pathAudioFile)); 
} 

public File getDir(File audioFile) 
{ 
    return audioFile.getParentFile(); 
}