文件系统 AirportHDD 从一开始就被挂载(AFP),当我启动这个小程序时文件就存在了。我试图弄清楚为什么以下内容不起作用,但找不到任何解决方案:
public static void main(String[] arguments)
{
while(1==1)
{
File f=new File(
"/Volumes/AirportHDD/test/lock.csv");
System.out.println(f.exists());
AmySystem.sleep(100);
}
}
输出是:真,真,...
一旦我从另一台计算机上删除文件(AirportHDD 是通过网络安装的硬盘),输出就会一直说:true,true,...当我打开 finder 并转到此目录时,输出更改为:false,false , ...
当文件再次添加(通过另一台电脑)时,输出仍然是:假,假,...
但是如果再次打开 finder 并单击目录,finder 会显示现有文件,输出会突然变为:false, true, true, true, ...
笔记:
只要java“认为”文件不存在,所有其他文件操作(如打开读取)都会失败
如果程序本身正在创建和删除文件,则不会出现问题
刚刚在测试时发现使用 samba 共享一切都可以,但使用 AFP 就无法正常工作
有没有办法告诉java做和finder一样的事情,比如刷新,或者不要尝试缓存,无论如何?