日期:2014-05-20  浏览次数:20865 次

目录,文件操作:删除,创建,拷贝...
String   path   =   "c:\\aa ";
file   =   new   File(path);
if   (file.exists())   {//   检查目录是否存在
//   目录存在,删除目录及下所有文件和目录
Runtime.getRuntime().exec( "cmd.exe   /c   rd   "   +   path   +   "   /s/q ");
}
file.mkdir();//   建立目录
System.out.println(path);
Runtime.getRuntime().exec( "xcopy   f:\\bb   "   +   path   +   "   /s/e ");


如果目录不存在,可以创建目录成功,而且拷贝也成功;但是目录如何存在,删除可以,创建目录不成功,拷贝也不可以。请各位DX帮忙看看为什么?在此先谢谢。

------解决方案--------------------
Runtime.getRuntime().exec( "cmd.exe /c rd " + path + " /s/q ");是异步的
------解决方案--------------------
java 自己有删除,拷贝目录,等方法亚,你的功能我都做过呀,直接用java 的方法就可以了,可以不Runtime.getRuntime().exec 就可以实现亚,你可以尝试
------解决方案--------------------
/** 删除指定文件
*
*/
public void deleteFile(String filename) {
File f = new File(filename);
if (!f.exists()) System.out.print( "Delete: no such file or directory: " +filename);
if (!f.canWrite()) System.out.print( "Delete: write protected: " + filename);

if (f.isDirectory()) {
String[] files = f.list();
if (files.length > 0)
System.out.print( "Delete: directory not empty: " + filename);
}

boolean success = f.delete();

if (!success) System.out.print( "Delete: deletion failed ");

System.out.print( "delete ");
}
------解决方案--------------------
/**
*
* @param filename 以有的文件(c:\a.doc)
* @param copyto 要copy到的文件名称(d:\A.doc)
* @throws IOException
*/
public static void copyFile(String filename,String copyto)throws IOException{
InputStream is=new FileInputStream(filename);
OutputStream streamOut = new FileOutputStream(copyto);//定义输出流
int byteRead = 0;
byte[] buffer = new byte[8192];
while ((byteRead = is.read(buffer, 0, 8192)) != -1) {
streamOut.write(buffer, 0, byteRead);
}
streamOut.close();
is.close();
}
------解决方案--------------------
/**
* 删除文件夹下所有文件
*
* @param filePath
* @throws IOException
*/
public static void deleteDir(String filePath)throws IOException{
File path=new File(filePath);
if(path.exists()){
if(path.isFile()){
path.delete();
}else{
String[] fileList=path.list();
for(int i=0;i <fileList.length;i++){
File child=new File(path + "\\ " +fileList[i]);
if(child.isFile()){
child.delete();
}else{
String childPath=child.toString();
deleteDir(childPath);
}
child.delete();
}
path.delete();
}
}
}
------解决方案--------------------
可以这样
Process process = Runtime.getRuntime().exec( "cmd.exe /c rd " + path + " /s/q ");
process.waitFor();
if (process.exitValue() == 0)
file.mkdir();
else
...
------解决方案--------------------
1。新建目录
String filePath= "root:/XXX/ ";