Please delete it in windows.
Because it isn't a right name in DOS,so you can't receive right result to operate it in DOS.
Because it isn't a right name in DOS,so you can't receive right result to operate it in DOS.
一般情况也是windows下删除不了的可以在dos下删除di
f.delete();
不过我的机子上也有一个文件删不掉 改了名字也不行~ 不是空格的问题,不解....
你试试看~ 好的话发短消息给我就噢了~~
String.trim();
如果能ren不就能删掉了吗...
这个和安全模式有关系吗?C:\Documents and Settings\All Users\「开始」菜单\程序>del "金山毒霸 6 "
找不到 C:\Documents and Settings\All Users\「开始」菜单\程序\金山毒霸 6C:\Documents and Settings\All Users\「开始」菜单\程序>rd "金山毒霸 6 "
系统找不到指定的文件。C:\Documents and Settings\All Users\「开始」菜单\程序>ren "金山毒霸 6 " ccc
系统找不到指定的文件。这是命令执行的结果...
首先要删除该目录下所有文件和目录的哦。File f = new File("D:\\Program File\\金山毒霸 6 ")
f.delete();TO:
执行结果
System.out.println(f.delete());
Flase
1、文件夹下面有没有别的什么任何文件,如果有则递归删除之;
2、确定文件属性是否可写或者是什么隐藏文件,如果有问题就通过类似于以下的代码来修改属性:
private static void writable(File readOnly) {
// System.out.println(">>>>>>>>>>>>>>>");
try{
String command = "cmd /c ";
//System.out.println(readOnly.getAbsolutePath());
command = command + " attrib -h -s -r \"" + readOnly.getAbsolutePath() + "\"";
// System.out.println(command);
Runtime sys= Runtime.getRuntime();
Process p=sys.exec(command);
// StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR");
// errorGobbler.start();
// StreamGobbler stdoutGobbler = new StreamGobbler(p.getErrorStream(), "ERROR");
// stdoutGobbler.start();
int ret = p.waitFor();
if (ret != 0) {
if (readOnly.delete()) {
System.out.println("<" + new Date() + ">" + "修改只读属性失败,删除文件: " + readOnly.getName());
} else {
readOnly.deleteOnExit();
System.out.println("<" + new Date() + ">" + "修改只读属性失败,延迟删除文件: " + readOnly.getName());
}
} else {
System.out.println("<" + new Date() + ">" + "修改只读属性文件: " + readOnly.getName() + " 成功");
}
}catch(Exception e){
// System.out.println(e.toString());
} }同时要注意命令行中的引号要保留的,注意这一段:
" attrib -h -s -r \"" + readOnly.getAbsolutePath() + "\""这里用到了io流Gobbler,详细请看:http://community.csdn.net/Expert/topic/3225/3225349.xml?temp=.81446473、如果还是不行的话,则可能是你的系统编码和文件夹所创建时候的编码不一致。比如缺省gbk,而那个文件夹使用big5编码的?--这点好像不存在。
用dir /x 列目录。
/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
找到要删除的文件夹,先cd 短名称 进入文件夹,清空文件夹
再用 rmdir +短名称删除文件夹。
如:md aa,然后按住alt敲数字,譬如alt+248之类的。
就建立了一个带有“空格”的目录,此时使用
rd "aa " 当然是不行的了。如果不用编程的方法解决也许还好办,将这个目录move到一个别的目录,然后Deltree上级目录也许可以。编程的办法也许遍历子目录,找到那个目录后delete也许可以~
谢谢大家了已经通过偶然的方式删除了具体删除过程:
1 进入DOS
2 找个支持DOS下中文显示的东西
3 删除
++++++
应为在DOS下 目录被显示为"金山毒~1"
所以删除掉了++++
总结一下:
现在还是不能确定是不是目录名的问题.
因为用windows优化大师里面的系统医生检查 说找个目录是磁盘文件错误
经过修复后 扫描 仍然检查出磁盘文件错误.我分析的结果是:因为最后还好是删掉了 应该不是磁盘文件错误吧.
无法在XP下删除大约是因为无法根据目录名来找到硬盘上相应的位置吧.因为..无法用CD "金山毒霸 6 " 进入目录 而 资源管理器里却可以通过双击进入.而且奇怪的是可以在这个目录下建立目录和文件.DOS下对目录进行操作的命令全部无效.
而且在资源管理器里面除了双击进入以外的目录操作均不可以.
并且:我在进行DOS下的操作是 目录名是通过在资源管理器中进行目录改名时候复制下来的.应该不会有空格还是Alt+255出来的空格的问题吧.
但是 我没有用程序将末尾的空格按ASCII值打印一下看看.
遗憾以上的朋友们提供的方法.
无论是写C的程序还是Java的程序均没有能删除掉目录.
应该还是无法识别目录名的原因吧.