java访问共享目录

it2022-05-09  25

新一篇: jsf结合myfaces实现文件上传

由于工作需要读取局域网中一台机器的 共享目录中的文件,需要 jcifs-1.1.11.jar的支持,使用 SMB协议,以下是实现了远程读取并复制到本地,然后删除本地文件的功能: import  java.io.BufferedInputStream; import  java.io.BufferedOutputStream; import  java.io.File; import  java.io.FileOutputStream; import  java.io.IOException; import  java.io.InputStream; import  java.io.OutputStream; import  java.util.Date; import  jcifs.smb.SmbFile; import  jcifs.smb.SmbFileInputStream; public   class  TestReadSmb  ... {    public static void main(String[] args) ...{            String smbMachine="smb://10.108.23.200/temp/说明文件.txt";            String localPath="D:/temp";            File file=readFromSmb(smbMachine,localPath);            removeFile(file);    }    /** *//**     * 从smbMachine读取文件并存储到localpath指定的路径     *      * @param smbMachine     *            共享机器的文件,如smb://xxx:xxx@10.108.23.112/myDocument/测试文本.txt,xxx:xxx是共享机器的用户名密码     * @param localpath     *            本地路径     * @return     */public static File readFromSmb(String smbMachine,String localpath)...{        File localfile=null;        InputStream bis=null;        OutputStream bos=null;        try ...{            SmbFile rmifile = new SmbFile(smbMachine);            String filename=rmifile.getName();            bis=new BufferedInputStream(new SmbFileInputStream(rmifile));            localfile=new File(localpath+File.separator+filename);            bos=new BufferedOutputStream(new FileOutputStream(localfile));            int length=rmifile.getContentLength();            byte[] buffer=new byte[length];            Date date=new Date();            bis.read(buffer);            bos.write(buffer);                        Date end=new Date();            int time= (int) ((end.getTime()-date.getTime())/1000);            if(time>0)                System.out.println("用时:"+time+""+"速度:"+length/time/1024+"kb/秒");                    } catch (Exception e) ...{            // TODO Auto-generated catch block            System.out.println(e.getMessage());                    }finally...{            try ...{                bos.close();                bis.close();            } catch (IOException e) ...{//                // TODO Auto-generated catch block                e.printStackTrace();            }                    }        return localfile;    }    public static boolean removeFile(File file) ...{        return file.delete();    }}

转载于:https://www.cnblogs.com/nanshouyong326/archive/2008/05/19/1202570.html


最新回复(0)