如何用java代码得到文件夹的路径(即一个方法,输入文件夹名称,返回路径)
2个回答
展开全部
最原始的方法可以遍历所有盘符文件
public class Path
{
private final List<File> list=new ArrayList<File>();
private String directory;
public Path(String s)
{
this.directory=s;
}
private void genPath()
{
File[] roots=File.listRoots();
for(File root:roots)
searchExists(root);
}
private void searchExists(File file)
{
String tempPath=file.getAbsolutePath();
if(tempPath.contains(directory)
&&(tempPath.substring(tempPath.lastIndexOf(directory)).equals(directory)))
list.add(file);
if(file.isDirectory()&&file.list()!=null)
{
File[] files=file.listFiles();
for(File f:files)
{
searchExists(f);
}
}
}
public void listPath()
{
genPath();
for(File file:list)
System.out.println(file.getAbsolutePath());
}
public static void main(String[] args) throws UnsupportedEncodingException
{
Path p=new Path("CS1.6");
p.listPath();
}
}
测试正确,但性能太差,考虑用好的文件查找算法和多线程来作
public class Path
{
private final List<File> list=new ArrayList<File>();
private String directory;
public Path(String s)
{
this.directory=s;
}
private void genPath()
{
File[] roots=File.listRoots();
for(File root:roots)
searchExists(root);
}
private void searchExists(File file)
{
String tempPath=file.getAbsolutePath();
if(tempPath.contains(directory)
&&(tempPath.substring(tempPath.lastIndexOf(directory)).equals(directory)))
list.add(file);
if(file.isDirectory()&&file.list()!=null)
{
File[] files=file.listFiles();
for(File f:files)
{
searchExists(f);
}
}
}
public void listPath()
{
genPath();
for(File file:list)
System.out.println(file.getAbsolutePath());
}
public static void main(String[] args) throws UnsupportedEncodingException
{
Path p=new Path("CS1.6");
p.listPath();
}
}
测试正确,但性能太差,考虑用好的文件查找算法和多线程来作
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询