社区
Java SE
帖子详情
求搜索目录算法
dgsrest
2003-10-16 12:29:49
我想写个程序,用户自定义路径,然后把它的路径下的文件全部找出来。
...全文
35
2
打赏
收藏
求搜索目录算法
我想写个程序,用户自定义路径,然后把它的路径下的文件全部找出来。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
207
2003-10-16
打赏
举报
回复
这个用循环的
//:用循环方法实现
package ces.com.filesys;
import java.io.*;
import java.util.*;
/**
*
* Title: 目录列表
* Description: 据用户输入根目录列出子目录和其文件
*/
public class DirMap2 {
//存储根目录下文件树信息
private static Vector vcFileTree=new Vector();
//存储文件夹信息
private static Vector vcDir=new Vector();
//存储暂时相对根目录
private static File fileTmpDir;
//存储用户输入的标准路径信息
private static String strDirRoot=new String();
//记录文件夹向量里读取第几个元素
private static int intDir=0;
//主方法
public static void main(String[] args)throws Exception{
//暂时存储用户输入的路径
String strTmp=new String();
try{
//接受用户输入搜索路径
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
System.out.println("请输入你要搜索的目录:");
strTmp=input.readLine();
//转换为标准路径信息
strDirRoot=strTmp.substring(0,1)+":\\"+strTmp.substring(2);
}catch(IOException ioe){
System.err.println(ioe.toString());
}catch(StringIndexOutOfBoundsException se){
//信息判断,转入搜索默认目录
System.err.println("输入信息不正确,转入搜索默认目录");
strDirRoot="c:\\downloads";
}
//提示
System.out.println("正在搜索,请稍候...");
//调用getFileTreeToVector方法
try{
getFileTreeToVector(strDirRoot);
//调整向量内的确切容量
vcFileTree.trimToSize();
//打印向量内的内容
for(int i=0;i<vcFileTree.size();i++)
System.out.println(vcFileTree.get(i));
System.out.println("搜索完毕!");
}catch(Exception e){
System.err.println(e.toString());
}
}
/**
* 用循环方法实现目录搜索
* @param strDirRoot 当前要搜索根目录名
* @return 存储该根目录下文件树信息的向量
*/
public static Vector getFileTreeToVector(String strDirRoot){
fileTmpDir=new File(strDirRoot);
/**
* 判断路径是否存在
* 如果用户输入目录不存在,自动跳到C:\\downloads目录下
*/
if(!fileTmpDir.exists()){
System.err.println("路径不存在,转入搜索默认路径!");
//路径不存在,设置搜索默认路径
strDirRoot="c:\\downloads";
fileTmpDir=new File(strDirRoot);
}
else{}
//读出相对根目录下文件树信息
for(;;){
/**
* 用类成员fileTmpDir记录文件夹信息,便于循环
* 读取相对文件夹里文件树信息
*/
File[] fileSubRoot =fileTmpDir.listFiles();
//如果不是空文件夹
if(fileSubRoot!=null){
for(int i=0;i<fileSubRoot.length;i++)
//如果不是文件夹
if(!fileSubRoot[i].isDirectory()){
//把文件路径信息放入文件树Vector
vcFileTree.add(fileSubRoot[i]);
}
else{
vcFileTree.add(fileSubRoot[i]);
//是文件夹,放入文件夹Vector内
vcDir.add(fileSubRoot[i]);
}
}
//如果文件夹向量读完,就退出
if(intDir==vcDir.size()) break;
try{
/**
* 从文件夹向量读出子文件夹信息
* 改变类成员fileTmpDir内容记录准备搜索的文件夹信息
*/
fileTmpDir=(File)vcDir.get(intDir);
}catch(Exception e){
e.printStackTrace();
}
//类成员记住读取文件夹向量中元素位置
intDir++;
} //for(;;)结束
return vcFileTree;
}
}
207
2003-10-16
打赏
举报
回复
我写的搜索的,这个是递归的
//:用递归方法实现
package ces.com.filesys;
import java.io.*;
import java.util.*;
/**
*
* Title: 目录列表
* Description: 据用户输入根目录列出子目录和其文件
*/
public class DirMap {
//存储根目录下文件树信息
private static Vector vcFileTree=new Vector();
//存储用户输入的标准路径信息
private static String strDirRoot=new String();
//主方法
public static void main(String[] args)throws Exception{
//暂时存储用户输入的路径
String strTmp=new String();
try{
//接受用户输入搜索路径
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
System.out.println("请输入你要搜索的目录:");
strTmp=input.readLine();
//转换为标准路径信息
strDirRoot=strTmp.substring(0,1)+":\\"+strTmp.substring(2);
}catch(IOException ioe){
System.err.println(ioe.toString());
}catch(StringIndexOutOfBoundsException se){
//回车空信息判断,转入搜索默认目录
System.err.println("输入信息为空,转入搜索默认目录");
}
//提示
System.out.println("正在搜索,请稍候...");
//调用getFileTreeToVector方法
try{
getFileTreeToVector(strDirRoot);
//调整向量内的确切容量
vcFileTree.trimToSize();
//打印向量内的内容
for(int i=0;i<vcFileTree.size();i++)
System.out.println(vcFileTree.get(i));
System.out.println("搜索完毕!");
}catch(Exception e){
System.err.println(e.toString());
}
}
/**
*
* @param strDirRoot 当前要搜索根目录名
* @return 存储该根目录下文件树信息的向量
*/
public static Vector getFileTreeToVector(String strDirRoot){
File fileRootPath=new File(strDirRoot);
/**
* 判断路径是否存在
* 如果用户输入目录不存在,自动跳到C:\\downloads目录下
*/
if(!fileRootPath.exists()){
System.err.println("路径不存在,转入搜索默认路径!");
//路径不存在,设置搜索默认路径
strDirRoot="c:\\downloads";
fileRootPath=new File(strDirRoot);
}
else{}
//读出相对根目录下文件树信息
File[] fileSubPath =fileRootPath.listFiles();
try{
//开始搜索
loopSearch(fileSubPath);
}catch(Exception e){
System.err.println(e.toString());
}
return vcFileTree;
}// getFileTreeToVector方法结束
/**
*
* @param fileSubRoot 待搜索相对目录下的文件树信息
*/
private static void loopSearch(File[] fileSubRoot) throws Exception{
//如果不是空文件夹
if(fileSubRoot!=null){
for(int i=0;i<fileSubRoot.length;i++)
//如果不是文件夹
if(!fileSubRoot[i].isDirectory()){
//把文件路径信息放入Vector
vcFileTree.add(fileSubRoot[i]);
}
//如果是文件夹,递归调用
else{
//把文件夹路径信息放入Vecot
vcFileTree.add(fileSubRoot[i]);
//在以该文件夹路径为相对根目录再递归搜索
File[] fileSubPaths =fileSubRoot[i].listFiles();
//递归调用
loopSearch(fileSubPaths);
}
}
else{}
}// loopSearch方法结束
}//DirMap类结束
智能优化
算法
:麻雀
搜索
算法
-附代码
2020智能优化
算法
:麻雀
搜索
算法
-附代码 文章
目录
2020智能优化
算法
:麻雀
搜索
算法
-附代码1.
算法
原理2.
算法
结果3.参考文献4.Matlab代码 摘要:麻雀
搜索
算法
(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA 主要是受麻雀的觅食行为和 反捕食行为的启发而提出的。该
算法
比较新颖,具有寻优能力强,收敛速度快的优点 1.
算法
原理 建立麻雀
搜索
算法
的数学模型,主要规则如下所述: 发现者通常拥有较高的能源储备并且在整个种群中负责
搜索
到具有丰富食物的区域,为所有的加
启发式
搜索
算法
:A
算法
(全局、局部择优
算法
)+A*
算法
解决八数码问题
文章
目录
1.A
算法
1.1.全局择优
算法
1.1.1.
求
解八数码1.2.局部择优
算法
2.A*
算法
2.1 解决八数码难题 参考博客:人工智能
搜索
策略:A*
算法
1.A
算法
在图
搜索
算法
中,如果能在
搜索
的每一步都利用估价函数f(n)=g(n)+h(n)对Open表中的节点进行排序,则该
搜索
算法
为A
算法
。由于估价函数中带有问题自身的启发性信息,因此,A
算法
又称为启发式
搜索
算法
。 对启发式
搜索
算法
,又可根据
搜索
过程中选择扩展节点的范围,将其分为全局择优
搜索
算法
和局部择优
搜索
算法
。 ` 1.1.全局择优
算法
在全
百度
搜索
引擎
算法
大全
网站做SEO优化必然要了解
搜索
引擎的
算法
规则,国内
搜索
以百度为主,其他
搜索
引擎也可以参考百度
搜索
的
算法
规则,基本上大同小异,如果在做网站SEO优化时不遵守
搜索
引擎的
算法
,很容易出现SEO策略失效,让网站失去价值。 下面是百度
搜索
引擎全部
算法
规则,务必牢记。 绿萝
算法
这种
算法
主要打击链接的买卖,链接的恶意交换以及恶意发布外链的行为。 蓝天
算法
这种
算法
主要打击新闻网站售卖软文以及
目录
的行为。 飓风
算法
这种
算法
主要打击大量从其它网站或公众号等内容生产方采集、搬运而来的内容,信息没有整理,排版混
智能优化
算法
:回溯
搜索
优化
算法
-附代码
智能优化
算法
:回溯
搜索
优化
算法
文章
目录
智能优化
算法
:回溯
搜索
优化
算法
1.
算法
原理1.1 初始化种群1.2 选择I1.3 变异1.4 交叉1.5 选择II2.
算法
结果4.参考文献5.Matlab代码 摘要:回溯
搜索
优化
算法
(BSA)是 Civicioglu于2013年提出 的 一种 基 于种群的元启发式
算法
。被广泛应用于寻优问题中,具有收敛速度快等特点。 1.
算法
原理 BSA是一种基于种群的新型启发式
算法
,与大多数元启发式
算法
类似,该
算法
通过种群的变异、交叉和选择来达到寻优的目的。BSA有着一个记忆种群的功
【智能优化
算法
】广义邻域
搜索
算法
(综述)
广义邻域
搜索
算法
目录
广义邻域
搜索
算法
传统邻域
搜索
算法
:广义邻域
搜索
算法
:广义邻域
搜索
算法
的六要素:广义邻域
搜索
算法
的统一结构:优化
算法
的性能评价指标: 传统邻域
搜索
算法
: 即利用邻域结构进行逐步优化的局部
搜索
算法
。
算法
从一个初始解出发,然后利用状态发生器持续的在解x的邻域中
搜索
比它好的解,然后替代x成为新的当前解,直至
算法
结束。 广义邻域
搜索
算法
:
算法
从若干初始解出发,在
算法
参数控制下由当前状态的邻域中产生出若干个候选解,并以某种策略在当前解和候选解中确定新的当前状态。伴随控制参数的调节,重复执行上述
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章