我正在使用一些代码,我希望它的行为取决于文件所在的文件夹名称。我不需要绝对路径,只需要最终文件夹。到目前为止,我所看到的一切都是使用文件中指定的绝对路径。
问问题
12847 次
5 回答
7
这就是你想要的:
public static String getParentName(File file) {
if(file == null || file.isDirectory()) {
return null;
}
String parent = file.getParent();
parent = parent.substring(parent.lastIndexOf("\\") + 1, parent.length());
return parent;
}
不幸的是,没有预先提供的方法只返回文件路径中最后一个文件夹的名称,因此您必须进行一些字符串操作才能获取它。
于 2013-09-26T14:23:55.777 回答
2
尝试java.io.File.getParentFile()方法。
String getFileParentName(File file) {
if (file != null && file.getParentFile() != null) {
return file.getParentFile().getName();
}
return null; // no parent for file
}
于 2013-09-26T14:13:51.000 回答
2
我认为java.io.File.getParent()是您正在寻找的:
import java.io.File;
public class Demo {
public static void main(String[] args) {
File f = null;
String parent="not found";
f = new File("/tmp/test.txt");
parent = f.getParent();
System.out.print("parent name: "+v);
}
}
于 2013-09-26T14:16:34.657 回答
1
有
String File.getParent()
还有
File File.getParentFile()
我不知道绝对或相对的回报是什么,但如果它是绝对的,你总能找到“\”字符的最后一个(或倒数第二个,取决于)实例(记得像这样转义它“\ \") 表示最低文件夹级别在哪里。
例如,如果函数返回:
“C:\Users\YourName”是您最后一次出现“\”的位置,之后的所有字符都是您想要的文件夹
“C:\Users\YourName\”是您获得倒数第二次出现“\”的位置,并且它与最后一个“\”之间的所有字符都是您要查找的文件夹。
Java 文件 API: http ://docs.oracle.com/javase/7/docs/api/java/io/File.html
于 2013-09-26T14:15:48.580 回答
0
String path = "/abc/def"; // path to the directory
try
{
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles)
{
if(file.isDirectory())
{
switch(file.getName)
{
case "folder1" : //do something
break
case "folder2" : //do something else
break
}
}
}
}
catch(Exception e)
{
System.out.println("Directory not Found");
}
于 2013-09-26T14:34:42.770 回答