package com.jkk.io; import java.io.*; /** *这个类是一个使用静态方法delete()和一个删除指定文件或目录的独立程序 * **/ public class Delete{ /** *独立程序的main()方法,检测其参数后 *调用 Delete.delete() 进行删除操作 * **/
/** *用于删除文件或目录的静态方法,由main()调用 *也可有其它程序调用 *删除前首先确定文件或,目录是否可删除 *如有问题,在于抛出异常IllegalArgumentException **/ public static void delete(String filename){ File f =new File(filename);
//确定文件或目录是否存在,是否写保护 if (!f.exists())fail("Delete no such file or directory:"+filename); if (!f.canWrite())fail("Delete:write protected:"+filename); if (f.isDirectory()){ String[] files= f.list(); if (files.length>0) fail("Delete :directory no empty:"+filename);
} //如果通过了所有测试,删除 boolean success=f.delete(); if (!success)fail("Delete:deletion failed"); }
//抛出异常的简便方法 protected static void fail(String msg)throws IllegalArgumentException { throw new IllegalArgumentException(msg); } public static void main(String[] args){ if (args.length!=1){ System.err.println("Usage:java Delection <file or directory>"); System.exit(0); try{ delete(args[0]); } //调用delete()显示抛出错误 catch (IllegalArgumentException e){ System.err.println(e.getMessage()); } } } } /** * 这个程序在我编译后运行执行时会出现这样的问题 *Exception in thread "main" java.lang.NoClassDeFoundError:Delete(wrong name:com/jkk/io/Delete)为什么? */