我想这个涉及到ftp协议,要从协议入手

解决方案 »

  1.   

    如果自己写的ftp,那自然容易。如果用的系统自带的ftp工具(unix或windows),我觉得有2钟办法(1)检查2次,比较大小
    2个时刻文件大小不同可以说明文件未传完(但不准确,有可能这个时间段内由于网络问题上传为0)(2) FTP未完成时,文件不能删除和改名
    利用这点可以完成测试。File f = new File("c:\\a.txt");
    if(f.renameTo(f)) {
      //文件上传结束!
    }
      

  2.   

    比较赞同 kingfish(八百里秦川@龙城异客) 所说的第二种方法。
    不过楼主可以自己做一个FTP的方法,可以在文件尾部加上相应的表示结束的标志,来判断是否传输完毕。
      

  3.   

    推荐。
    File first=new File("xxx.txt");
      Thread.sleep(1000);
      File second=new File("xxx.txt");
      first.compareTo(second);
      

  4.   

    关注中,觉得 kingfish(八百里秦川@龙城异客)
    所说的第二种方法不错。
      

  5.   

    我们想在文件结尾设定一个双方约定的结束符号来验证一个文件是否结束!但是现在碰到一个问题就是:在JAVA中有没有一个方法直接读取文件的最后一行?大家知道有这方面的方法吗?谢谢大家回复了!
      

  6.   

    比如文件尾约定“AAAA”表示结束,用RandomAccessFile置文件指针直接读(文件长度-4)就可以了。主要是约定的符号是否能保证文件里不会出现。
      

  7.   

    1。 用Runtime启动一个Process去看"ps -ef | grep ftp"
    2.  用Runtime启动一个ftp自己控制ftp
    3.  最好的办法是 修改你的ftp脚本,传输的时候先用一个临时文件名,比如"tmp_ftp_00345_sd98asdff23.tar.gz",当一个文件传输结束之后,重命名成你想要的文件名,比如"employe.tar.gz",这样,文件没传好之前,你的程序就访问不到"employe.tar.gz"了.这样最简单安全。
      

  8.   

    上传中的文件因为被FTP程序打开,所以不能读写。从这里入手。