.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件名.

.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件名.,第1张

import javaio;

import javautilArrayList;

import javautilIterator;

import javautilList;

/

读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历

@author zdz8207

/

public class FileViewer {

public static void main(String[] args) {

//List arrayList = FileViewergetListFiles("d:/com","html",true);

//读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)

//List arrayList = FileViewergetListFiles("d:/com","java",true);

//经试验,后缀不能不填写,否则编译不通过,提示“FileViewerjava:17: 非法的表达式开始”。

//另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件

List arrayList = FileViewergetListFiles("d:/com","",true);

if(arrayListisEmpty())

{

Systemoutprintln("没有符号要求的文件");

}

else

{

String message = "";

message += "符号要求的文件数:" + arrayListsize() + "\r\n";

Systemoutprintln(message);

for (Iterator i = arrayListiterator(); ihasNext();)

{

String temp = (String) inext();

Systemoutprintln(temp);

message += temp + "\r\n";

}

//将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常

//javaioFileNotFoundException: d:\ajax\menutxt (系统找不到指定的路径。)

//如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。

appendMethod("d:/menutxt",message);

}

}

public static List<String> fileList = new ArrayList<String>();

/

@param path 文件路径

@param suffix 后缀名

@param isdepth 是否遍历子目录

@return

/

public static List getListFiles(String path, String suffix, boolean isdepth)

{

File file = new File(path);

return FileViewerlistFile(file ,suffix, isdepth);

}

public static List listFile(File f, String suffix, boolean isdepth)

{

//是目录,同时需要遍历子目录

if (fisDirectory() && isdepth == true)

{

File[] t = flistFiles();

for (int i = 0; i < tlength; i++)

{

listFile(t[i], suffix, isdepth);

}

}

else

{

String filePath = fgetAbsolutePath();

Systemoutprintln("suffix = "+suffix);

if(suffix =="" || suffix == null)

{

//后缀名为null则为所有文件

Systemoutprintln("----------------");

fileListadd(filePath);

}

else

{

int begIndex = filePathlastIndexOf("");//最后一个(即后缀名前面的)的索引

String tempsuffix = "";

if(begIndex != -1)//防止是文件但却没有后缀名结束的文件

{

tempsuffix = filePathsubstring(begIndex + 1, filePathlength());

}

if(tempsuffixequals(suffix))

{

fileListadd(filePath);

}

Systemoutprintln("|||||||||||||||||||");

}

}

return fileList;

}

/

方法追加文件:使用FileWriter

@param fileName

@param content

/

public static void appendMethod(String fileName, String content)

{

try

{

//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件

FileWriter writer = new FileWriter(fileName, true);

writerwrite(content + "\r\n");

writerclose();

}

catch (IOException e)

{

eprintStackTrace();

}

}

}

我看了您的问题,既然您说得出SHELLAPI哪么肯定知道ShellExecute,关键应该是‘同目录下’吧。应该是您程序内调用了其它目录,然后没返回做成的错误。应用ExtractFilePath(ParamStr(0))返回目录。我想答案是ShellExecute(handle, 'open', PChar(ExtractFilePath(ParamStr(0))+'123EXE'), nil, '',SW_SHOWMAXIMIZED);其它几个NIL呀、SW_显示方式呀、''内的打开文件呀、运行参数什么的自己再多找找吧。我随手粘贴一些您看应该已足够 方法一 uses WinProcs; 例:WinExec('D:\GoldPacs\GoldConfigexe',sw_normal); 方法二用ShellExecute更好,在USES段加入SHELLAPI,使用时如:执行"c:\myapp\myappexe"参数为"-s"ShellExecute(handle,'open','c:\myapp\myappexe','-s',',SW_SHOWNORMAL);第一个参数为父窗口句柄;第二个参数为打开方式(OPEN,PRINT两种);第三个参数为执行文件全路径;第四个参数为执行文件参数;第五个参数为执行文件开始运行时的初始目录;第六个参数为为执行文件运行方式(SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,SW_RESTORE,SW_SHOW,SW_SHOWDEFAULT,SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED,SW_SHOWMINNOACTIVE,SW_SHOWNA,SW_SHOWNOACTIVATE,SW_SHOWNORMAL);具体请看帮助。另外,如果为字符串参数,其中包含变量或运算的必需用PCHAR()函数。

以上就是关于.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件名.全部的内容,包括:.使用IO相关API,编写一个Java程序,遍历输出指定目录下的所有目录与文件名.、DELPHI 如何打开同目录下的程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9731125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存