具体是这样的 在一个文件夹里有一些事jpg格式的文件,还有些是exe格式的文件,用java程序将他们分到一个新的文件夹里,文件夹名字是4位的随机数,里面有一个pic文件夹,还有个exe文件夹,麻烦大家帮帮忙 ,急!

解决方案 »

  1.   

    你的意思是要求把图片格式的文件和exe格式的文件分开是吧??
      

  2.   


    /**
     * 判断图片是否正确,当文件后缀名为图片格式时,才进行此判断
     * 
     * 注:该方法不能判断动画形式的图片
     * 
     * @param inputStream 输入流
     * @return(当图片文件不正确时,返回False,正确时返回true)
     */
    private boolean isValidImage(InputStream inputStream) {
    if (inputStream != null) {
    JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(inputStream);
    try {
    decoder.decodeAsRaster(); // check the image format
    } catch (Exception e) {
    // e.printStackTrace();
    System.out.println("图片错误!");
    return false;
    }
    }
    return true;
    } public ActionForward doUploadOne(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    try {
    String fileName = request.getParameter("image");
    File file = new File(fileName); // 创建文件对象
    String name = fileName.substring(fileName.lastIndexOf(".")); // 得到后缀名
    String filePath = servlet.getServletContext().getRealPath("\\")+ "upload\\"; // 上传文件存放的路径
    if (name.equals(".jpg") || name.equals(".gif")) { // 判断后缀名是否为图片
    InputStream input = new FileInputStream(file); // 输入流
    BufferedImage bi = ImageIO.read(input); // 得到BufferedImage对象
    if (bi != null) { // 如果图片正确则不为空,不正确时为空
    //存放到图片文件夹
    } else {
    //虽然后缀名是图片,但是本身文件不是
    }
    } else {
    // 当文件不是图片文件时,存放到另一个文件夹
    }
    } catch (Exception e) { }
    return null;
    }
      

  3.   

    上面的
    String fileName = request.getParameter("image");
    File file = new File(fileName); // 创建文件对象
    是得到前台jsp页面上的<input type="file" name="image" />
    你把这里改了
    读你自己的文件,就是fileName改了。。
      

  4.   

    我知道了 刚才我用错了方法  应该用mkdir 我用成了mkdirs 刚看看了JDK才知道,谢谢大家!
      

  5.   

    我是做web开发的 写这个比较少 所以才心虚 呵呵
      

  6.   

    public class CApp {
    public static void main(String[] a_strArgs){
    File fleSrcDir=new File("test"); File[] a_fleProc=fleSrcDir.listFiles(); for (File fleAnytype:a_fleProc){
    if (!(fleAnytype.isFile()&&fleAnytype.canRead())) continue; 
    String strExtName=getExtName(fleAnytype);
    if (strExtName==null) continue; // skip none_extname file;
    File fleTagDir=new File(fleSrcDir,"_"+strExtName);
    if (!fleTagDir.exists()) fleTagDir.mkdir();
    fleAnytype.renameTo(new File(fleTagDir,fleAnytype.getName()));
    System.out.println("move " + fleAnytype.getName());
    } System.out.println("end");
    }

    private static String getExtName(File fle){
    String strName=fle.getName();
    int i=strName.lastIndexOf(".");
    if (i<=0) 
    return null;
    else
    return strName.substring(i);
    }
    }