try {
          
            InputStream streamIn = deleteFile.getInputStream();
            System.out.println("inputStream"+streamIn.toString());
            OutputStream streamOut = new FileOutputStream(_deleteActionForm.getDeleteFileDir() + "/" + fileName);
            System.out.println("outputStream");
            
            File _file = new File(_deleteActionForm.getDeleteFileDir()+ fileName);
            if (_file.isAbsolute()) {
                _file.delete();
            }
            streamOut.close();
            streamIn.close();
            _deleteActionForm.setFname(_deleteActionForm.getDeleteFileDir()+"/"+fileName);
            _deleteActionForm.setSize(fileSize);
            return true;
        }        catch (Exception e) {
            e.toString();
            return false;
        }俺想用这段代码在实现本地的文件删除,编译没有错,但是选取的文件的路径总是为Null,麻烦大家帮我看下要如何修改,谢谢!

解决方案 »

  1.   

    _deleteActionForm.getDeleteFileDir() 的代码?
      

  2.   

    package commonlib;import jbxstruts.*;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import java.io.*;
    import java.io.File;
    import javax.servlet.http.*;
    import org.apache.struts.upload.FormFile;
    import org.apache.struts.action.ActionMapping;
    import commonlib.FileDelete;public class FileDelete extends Action{
        public FileDelete() {
        }    public Boolean dowork(ActionForm form) {
            ActionMapping mapping;
            HttpServletRequest request;
            HttpServletResponse response;
            DeleteActionForm _deleteActionForm = (DeleteActionForm) form;
            FormFile deleteFile = _deleteActionForm.getFile();        if (deleteFile == null) {
                return false;
            }        String fileName = deleteFile.getFileName();
            String fileSize = Integer.toString(deleteFile.getFileSize()) + " bytes";        try {
                String filePath = servlet.getServletContext().getRealPath("/upload")+"\\"+fileName;
                //String filePath=_deleteActionForm.getDeleteFileDir()+"\\"+fileName;
                InputStream streamIn = deleteFile.getInputStream();
                System.out.println("inputStream");
                //OutputStream streamOut = new FileOutputStream(filePath);
                System.out.println("outputStream");            File _file = new File(filePath);
                if (_file.exists()) {
                    System.gc();
                    _file.delete();            }
                //streamOut.close();
                streamIn.close();
                _deleteActionForm.setFname(filePath);
                _deleteActionForm.setSize(fileSize);
                return true;
            }        catch (Exception e) {
                e.toString();
                return false;
            }
        }
    }
      

  3.   

    package jbxstruts;
    import commonlib.*;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.upload.FormFile;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import javax.servlet.http.HttpServletRequest;public class DeleteActionForm extends ActionForm
    {
        private FormFile file;
        private String fname;
        private String size;
        private String deleteFileDir;
        public FormFile getFile() {
            return file;
        }    public void setFile(FormFile file) {
            this.file = file;
        }    public void setFname(String fname)
        {
            this.fname = fname;
        }    public String getFname()
        {
            return this.fname;
        }    public void setSize(String size)
        {
            this.size = size;
        }    public String getSize()
        {
            return this.size;
        }    public String getDeleteFileDir()
        {
            return this.deleteFileDir;
        }    public void setDeleteFileDir(String deleteFileDir)
        {
            this.deleteFileDir = deleteFileDir;
           // return deleteFileDir;
        }    public ActionErrors validate(ActionMapping actionMapping,
                                     HttpServletRequest httpServletRequest) {
                /** @todo: finish this method, this is just the skeleton.*/
            return null;
        }    public void reset(ActionMapping actionMapping,
                          HttpServletRequest servletRequest) {
        }
    }
      

  4.   

    package jbxstruts;
    import commonlib.*;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;
    import java.io.*;
    import javax.servlet.http.*;
    import org.apache.struts.upload.FormFile;
    //import Model.*;public class FileAction extends Action {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) {
            FileActionForm _fileActionForm = (FileActionForm) form;
            _fileActionForm.setUploadFileDir(this.servlet.getServletContext().getRealPath("/upLoadFile"));//上传的文件保存的目录        FileUpload _fileUpload = new FileUpload();        if(_fileUpload.dowork(_fileActionForm)  == false)
            {
                return mapping.findForward("uploadFailure");
            }
            return mapping.findForward("uploadSuccess");
        }
    }
      

  5.   

    File对象本身就有两个api来得到File的路径的,查一下API就街道的了。