比如调用CMD程序的dir命令后,怎么得到文件夹下面文件和文件夹名字
简单方法:使用<命令> > <文件>调用,把返回输出到文件中,再打开该文件即可
这个可以使用Java的ProcessBuilder类来实现
下面是示例代码,你可以参照下
try {
//使用ProcessBuilder类创建一个进程来执行CMD命令
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "dir");
//设置redirectErrorStream(true),将标准错误流与标准输出流合并,以便通过输入流读取输出结果
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// 处理输出的每一行数据,提取文件和文件夹名字
System.out.println(line);
}
process.waitFor();
process.destroy();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
具体关于ProcessBuilder类的使用,你可以到网上搜下方法
【以下回答由 GPT 生成】
可以使用Java的Process类来实现调用外部程序并获取返回结果。下面是一种可能的解决方案:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ExternalProgram {
public static void main(String[] args) {
try {
// 调用CMD程序并执行dir命令
Process process = Runtime.getRuntime().exec("cmd /c dir");
// 获取CMD程序的输出流
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// 读取输出流中的内容
String line;
while ((line = reader.readLine()) != null) {
// 处理每一行的数据,这里只是简单地将内容打印出来
System.out.println(line);
}
// 关闭资源
reader.close();
inputStream.close();
// 等待CMD程序执行完毕
process.waitFor();
// 获取CMD程序的返回码
int exitValue = process.exitValue();
System.out.println("CMD程序的返回码: " + exitValue);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
这段代码会调用CMD程序并执行dir命令,并将CMD程序的输出结果打印出来。同时,获取CMD程序执行完毕后的返回码。
请注意,由于CMD程序的输出结果可能较大,建议使用缓冲读取流(BufferedReader)来读取输出流的内容,以避免内存溢出。同时,还需要注意关闭相应的资源,以及处理可能出现的异常。
如果你想获取更详细的返回结果,比如每个文件和文件夹的名称,可以根据具体情况进行解析处理。以上只是一个简单的示例,具体需求可以根据实际情况进行修改和扩展。
【相关推荐】