当把FTP当作中转站的时候,其他客户端或者设备上传文件到FTP,然后另一个程序去FTP目录下读取文件,这时候有可能读取到正在上传的文件,怎么判断文件上传已经完成呢?采用给文件重名的方式来实现,读取到原来的文件名,不做改变,再直接赋一次值,如果成功说明文件未被占用。下面是java实现过程,其他语言可以使用类似原理。
```
public static void isOpen(String ftpRootPath){ File file = new File(ftpRootPath); File[] array = file.listFiles(); List<String> list = new ArrayList<String>(); for(File tempFile : array){ File file1=tempFile; if(file1.renameTo(file1)){ System.out.println(file1+" 文件传输完成"); list.add(tempFile.getName()); }else{ System.out.println(file1+" 文件被打开"); } } }
```