Chinaunix首页 | 论坛 | 博客
  • 博客访问: 274704
  • 博文数量: 26
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-25 19:28
文章分类
文章存档

2011年(6)

2010年(4)

2009年(10)

2008年(6)

我的朋友
最近访客

分类:

2011-01-12 13:16:37

jxta传统的文件共享方式是:

    共享一个文件,将文件拷贝到安装目录share目录下,默认就共享这个share目录,每次启动程序,用startApp去初始化shares.ser这个文件,重新发布一下共享文件。(shares.ser保存了共享文件的路径以及一些文件共享协议,初始化shares.ser的同时,发出共享文件的广告。退出的时候把shares.ser文件中信息的清除)。在jxta提供的例子,我们可以看到startApp后,还要去遍历一下默认共享目录,用share()这个方法去再次共享一下文件。我想这个是为了保证shares.ser文件里面的信息跟默认共享目录里面的信息同步吧。
    这里面有一个问题,我们试想一下,如每次共享一下,就要把文件拷贝到默认共享目录下,如果小文件,我们可能感觉不到有什么不妥,但是大文件,就要费一下时间,如果做成软件,终端用户就感觉难用了且一个目。而录下如果放大量的文件的话,那就更影响效率了。
 
 
下面是我想到的解决方法:

    我们共享文件时,都是在不同的目录里面找文件,我们不去做拷贝,只是把文件的路径以及一些文件信息记录在一个文件里,这个可以以shares.xml的文件存取(格式可以自定义,自己怎么好理解就怎么定义),把这个文件放在安装目录下,shares.ser不用变还是放在原来的目录(也可以自定义到哪个地方,只需要每次启动程序初始化的时候,调用startApp时指定),退出时不用去清理shares.ser文件。这里要说明一下,前面说的shares.xml只是一个备份资源副本,为了保证shares.ser文件中共享文件信息的完整性和文件不重复信息,在新增共享文件时,根据shares.xml里面的文件信息,查看是否已经共享过了,如共享过了就不用共享了(每次共享文件,都调用share()这个方法,share()一个文件,就会在shares.ser里面增加一个共享文件信息,而不去判断是否有没有这个文件信息)。因为每次重新启动程序,都是startApp()根据shares.ser里面的共享文件信息进行广播的。
阅读(373) | 评论(0) | 转发(0) |
0

上一篇:webservice 开发实例

下一篇:jxta多目录扩展

给主人留下些什么吧!~~