// ============================================================ // <T>从监视器中移除一个监视文件。</T> // // @param info 文件信息 // ============================================================ public boolean remove(FFileInfo info) { if (null != info) { _files.remove(info.fileName()); return true; } return false; }
// ============================================================ // <T>从监视器中移除一个监视文件。</T> // // @param fileName 文件名称 // ============================================================ public boolean remove(String fileName) { FFileInfo info = _files.get(fileName); if (null != info) { _files.remove(fileName); return true; } return false; }
// ============================================================ // <T>执行监视器的逻辑。</T> // // @return 处理结果 // ============================================================ @Override public boolean onExecute() { // 检查文件集合 if (_files.isEmpty()) { return false; } // 检查变更的文件 FFileInfos removes = null; int count = _files.count(); for (int n = 0; n < count; n++) { FFileInfo info = _files.value(n); if (onFilter(info)) { if (info.exists()) { if (info.storeTest(_storeInterval)) { // 响应存储的文件 try { doFileSave(info); } catch (Exception e) { _logger.error(e, "File save event error (file={1})", info.fileName()); } info.stored(); } else if (info.isModified()) { // 响应变更的文件 try { doFileChange(info); } catch (Exception e) { _logger.error(e, "File change event error (file={1})", info.fileName()); } info.refresh(); } } else { // 响应被删除的文件 try { doFileRemove(info); } catch (Exception e) { _logger.error(e, "File remove event error (file={1})", info.fileName()); } if (null == removes) { removes = new FFileInfos(); } removes.push(info); } } } // 移除文件集合 if (null != removes) { for (FFileInfo info : removes.values()) { _files.remove(info.fileName()); } } return true; }