package home;
import java.io.File;
import java.io.RandomAccessFile;
import java.net.UnknownHostException;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import publicclass.ShowMessage;
/**
* FileLockManager ÎļþËø¹ÜÀÃ
*
*/
public class FileLockManager {
@SuppressWarnings("resource")
public static boolean isUsing(int singleId) throws UnknownHostException{
try {
RandomAccessFile raf = null;
FileChannel channel = null;
FileLock lock = null;
// ÔÚÃÙʱÎļþ¼Ã´´½¨Ò»¸öÃÙʱÎļþ£¬Ëø×¡Õâ¸öÎļþÓÃÀ´±£Ö¤Ó¦ÓóÌÃòÖ»ÓÃÒ»¸öʵÀý±»´´½¨.
File sf = new File(System.getProperty("java.io.tmpdir") + singleId + ".single");
sf.deleteOnExit();
sf.createNewFile();
raf = new RandomAccessFile(sf, "rw");
channel = raf.getChannel();
lock = channel.tryLock();
if (lock == null) {
// Èç¹ûûÓõõ½Ëø£¬Ôò³ÌÃòÃ˳ö.
// ûÓñØÒªÊÖ¶¯Ê÷ÅËøºÃ¹Ø±ÕÃ÷£¬µ±³ÌÃòÃ˳öʱ£¬ËûÃǻᱻ¹Ø±ÕµÄ.
return false;
}
return true;
} catch (Exception e) {
ShowMessage.zidingyi("ÎļþËøÒì³££¡");
return false;
}
}
}