有时,我们在编程的时候不得不用到操作系统所在的磁盘的盘符.
然而,java并没有提供获取盘符的方法,所以只能我们自己写代码来获得.
以下是我写的一个获取操作系统盘符的方法,该方法是直接在java里面执行Windows的cmd命令,来获得输出的.同理,还可以利用该方法获得很多其它的参数.
public class FileRoots {
public static void main(String[] args) {
String osDisk = execCmd("echo %SystemDrive%");
System.out.println(osDisk);
}
private static String execCmd(String cmd) {
try {
final CountDownLatch threadSignal = new CountDownLatch(2);
final Process pro = Runtime.getRuntime().exec("cmd /c " + cmd);
pro.getOutputStream().close();
final StringBuilder sb = new StringBuilder();
//新建以下两个线程是为了防止阻塞
Runnable errThread = new Runnable() {
@Override
public void run() {
try {
InputStream is = pro.getErrorStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = "";
while((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
threadSignal.countDown();//线程结束时计数器减1
}
};
if(sb.length() > 0) {
sb.deleteCharAt(0);
}
new Thread(errThread).start();
Runnable inputThread = new Runnable() {
@Override
public void run() {
try {
InputStream is = pro.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = "";
while((line = br.readLine()) != null) {
sb.append(line);
}
is.close();
isr.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
threadSignal.countDown();//线程结束时计数器减1
}
};
new Thread(inputThread).start();
// 主程序等待子线程执行完毕
try {
threadSignal.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
c#获得本机盘符c#获得本机盘符源代码c#获得本机盘符c#获得本机盘符源代码c#获得本机盘符c#获得本机盘符源代码c#获得本机盘符c#获得本机盘符源代码
这是可以通过VC得到系统盘符的4种方法,建议采取第一种,简单
这段简单的JAVA代码可以获取到WINDOWS的系统目录和环境变量,在XP和WIN7下测试通过!
获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料获取盘符资料
用java语言编写的一个小型病毒,代码量少,功能为将e:盘的文件剪切到F盘,并在e盘制造无用位置的文件
从网站上下载的 所以不说什么 获得逻辑盘符 然后显示在CComboBox中 然后根据CComboBox选项 在后面的CEdit中显示 Path Volum File Syestm and Max Component Len
易语言获取本地盘符源码,获取本地盘符,磁盘驱动器_
本文实例讲述了go语言获取系统盘符的方法。分享给大家供大家参考。具体如下: 涉及golang调用winapi获取系统盘符的技巧。代码如下: 代码如下:// cs project main.go package main import ( “fmt” . ...
可以解决U盘安装系统出现的硬盘盘符错乱 重新排列盘符
主要介绍了java读取某个盘符下的文件示例,代码中要求的是绝对路径,编译过程中要注意绝对路径问题和异常的抓取
VB 获取硬盘的所有盘符 你看到的文件来自:E动天下(http:/www.2e3.org)
用delphi获取计算机硬盘所有分区盘符。
系统盘符修改器易语言源码。@易语言入门教程。
盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏盘符隐藏
内容索引:VC/C++源码,系统相关,光盘,驱动器 VC++ 获取多个CD-ROM驱动器盘符源代码,懂得电脑的朋友都知道,现在的电脑配置都挺先进,一台机器可能有多个光盘驱动器,甚至是刻录机,现在光驱已是PC机的标准配置,...
怎么样通过读取文件,获得驱动器的盘符大小? 代码详解!
易语言系统盘符修改器源码,遍历卷,DeleteVolumeMountPoint,GetVolumePathNamesForVolumeName,SetVolumeMountPoint,FindFirstVolume,FindNextVolume,FindVolumeClose,MessageBox
获取U盘VID,PID,盘符,物理序列号(源码)可运行: 在论坛上只是看到了获取逻辑序列号等信息的资料 :eek::eek: 后来参考了些大侠的资料和讲解:终于搞出来了! (当然源码对于U盘,移动硬盘,手机卡,MP3/4都OK ) ...
易语言源代码_取系统所有盘符.zip
在系统下隐藏盘符。。可输入盘符号打开该盘符