package com.biya.dao.jdbc;

public class VirtualFileSystemDAOImpl {    private String uri;   private String userName;  private String password;  private boolean needAuth;// 是否需要用户认证  private DefaultFileSystemManager mgr; private FileObject fo;

  private DefaultFileSystemManager getFileSystemManager() throws FileSystemException {      if (mgr == null) {          mgr = (DefaultFileSystemManager) VFS.getManager();           //mgr.setCacheStrategy(CacheStrategy.ON_CALL);        }     return mgr;   }

   public FileObject getFileObject(String path) throws FileSystemException {     return getFileObject(path,true);  }

   public FileObject getFileObject(String path,boolean includeUri) throws FileSystemException {      if (this.needAuth) {          StaticUserAuthenticator auth = new StaticUserAuthenticator(null, userName, password);            FileSystemOptions opts = new FileSystemOptions();            DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);            if (includeUri){              fo = VFS.getManager().resolveFile(uri + path, opts);            }else{                fo = VFS.getManager().resolveFile("file://" + path, opts);            }     } else {          if (includeUri){              fo = this.getFileSystemManager().resolveFile(uri + path);           }else{                fo = VFS.getManager().resolveFile("file://" + path);          }     }     return fo;    }

   public void setNeedAuth(boolean needAuth) {       this.needAuth = needAuth;    }

   public void setUri(String uri) {      this.uri = uri;  }

   public void setUserName(String userName) {        this.userName = userName;    }

   public void setPassword(String password) {        this.password = password;    }

   public void copyFile(String sourcePath, String targetPath) throws FileSystemException {       FileObject src = getFileObject(sourcePath);      FileObject dest = getFileObject(targetPath);     if (dest.exists() && dest.getType() == FileType.FOLDER) {           dest = dest.resolveFile(src.getName().getBaseName());        }     dest.copyFrom(src, Selectors.SELECT_ALL); }

   public void createFile(FileItem fileItem, String targetPath) throws IOException {     String sourcePath=System.getProperty("user.home")+ File.separator + "objecttype.gif";      File file = new File( sourcePath);       try {         fileItem.write(file);     } catch (Exception ex) {          ex.printStackTrace();     }     FileObject src = getFileObject(sourcePath,false);        FileObject dest = getFileObject(targetPath);     dest.createFile();        if (dest.isWriteable()){          dest.copyFrom(src, Selectors.SELECT_ALL);     } }

   public void moveFile(String sourcePath, String targetPath) throws FileSystemException {       copyFile(sourcePath, targetPath);     removeFile(sourcePath);   }

   public void removeFile(String sourcePath) throws FileSystemException {        FileObject file = getFileObject(sourcePath);     file.delete(Selectors.SELECT_SELF);

 }

}

apache VSF 操作类相关推荐

  1. 常用Apache Commons工具类备忘

    常用Apache Commons工具类 ----------------------------------------------------------------- 例如:commons.lan ...

  2. Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例

    在和Spring和MongoDB进行整合的时候需要如下三个jar,分别是: spring-data-commons spring-data-mongodb mongo-java-driver 下面讲解 ...

  3. Apache POI操作Excel导出JAVABEAN对象方法

    2019独角兽企业重金招聘Python工程师标准>>> Apache POI操作Excel导出方法说明 Apache的POI组件是Java操作Microsoft Office办公套件 ...

  4. java word apache poi 操作word模板。

    apache poi 操作word模板. 操作方式: 1.对于固定格,可以遍历格子然后替换其中指定的值例如在要替换的cell写入${example} 这样格式,遍历到之后替换. 2.对于需要增长的表格 ...

  5. Java学习总结:41(文件操作类:File)

    Java文件操作类:File 在java.io包中,如果要进行文件自身的操作(例如:创建.删除等),只能依靠java.io.File类完成. File类的常用操作方法 No. 方法 类型 描述 1 p ...

  6. Java学习总结:35(数字操作类)

    Java的数字操作类 一.Math类 Math类是一个专门用来进行数学计算的操作类,它提供了一系列的数学计算方法.在Math类里面提供的一切方法都是static型方法,所以可以直接由类名称进行调用. ...

  7. classlist使用方法_如何通过使用HTML5的classList API在没有jQuery的情况下操作类

    classlist使用方法 by Ayo Isaiah 通过Ayo Isaiah 如何通过使用HTML5的classList API在没有jQuery的情况下操作类 (How to manipulat ...

  8. python mysql类里_Python MySql 操作类

    # -*- coding:utf-8 -*- import MySQLdb import time ''' · MySQL 操作类 · V1.0 ''' class MySQLClass(object ...

  9. java内省操作类的属性

    java内省操作类的属性 1.取得指定类的属性的方法 2.操作指定类的属性的方法 3.得到指定类的属性数据类型的方法 package com.ma.introspector;import java.b ...

  10. ecshop的Mysql操作类

    摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php/*** ECSHOP MYSQ ...

最新文章

  1. andriod studio 注释乱码问题
  2. nsqjs客户端的部署
  3. select的value值为对象时,获取label和value
  4. 什么?用@Async会内存溢出?看看你的线程池配置了没!
  5. 产品经理在跨部门沟通中常见问题和解决办法[转自UCDChina]
  6. jsp+urlrewrite实现html分页简单粗暴实现
  7. 【攻防世界005】parallel-comparator-200
  8. HTTP Header 详解
  9. PL/SQL: Stop Making the Same Performance Mistakes
  10. java-多线程安全-锁
  11. SAP table HRP1000的妙用
  12. linux sed 空间模式,整理:SED的模式空间与缓冲区及n,N,d,D,p,P,h,H,g,G,x解析...
  13. SharePoint学习札记[5] — 设置匿名访问
  14. 并行算法 Parallel Algorithm -- 提高执行效率
  15. 机器学习系列补充:数据集准备和更正YSX包
  16. 凹多边形三角剖分算法实现---基于Unity3D
  17. Python 网络编程
  18. php转换大小写函数,149-PHP大小写转换函数
  19. 20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
  20. MongoDB——实战演练

热门文章

  1. 几分钟,就看到人性的几个面孔
  2. 一个小时,零基础入门,看完这篇30行代码 教你实现百度换肤!
  3. xml文件导入wps_电脑中将WPS文档保存为XML格式的方法
  4. 利用DiskGenius对电脑磁盘系统数据迁移
  5. PowerPoint 中缺少think-cell 加载项怎么解决?
  6. 常用的MySQL命令大全(完整版、太到位了)
  7. 2022年最新前端面试题(大前端时代来临卷起来吧小伙子们..持续维护走到哪记到哪)
  8. sqlhelper java_java 版本SQLHelper
  9. HyperX旋火游戏鼠标推荐——轻量化鼠标设计界的艺术品
  10. banner设圆角_Banner设计技巧!