当把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+" 文件被打开");
}
}
}
```
本文介绍了一种通过文件重命名的方式判断FTP上文件是否上传完成的方法。利用Java代码实现,当文件可以成功重命名,则表明文件上传已完成,反之则文件正被上传。此方法适用于将FTP作为文件中转站的场景。
969





