файловая система журнала - Fuse

Я пишу файловую систему журнала через предохранитель (FUSE-JNA). Я хочу сделать это

  • журнал/вставка текущего времени в таблицу базы данных, когда пользователь открывает файл
  • и вставить текущее время в таблицу базы данных, когда пользователь закрывает файл

это так же, как журналы веб-сервера.

Для этого я подумал, что реализация методов open() и release() будет работать:

public int open(final String path, final FileInfoWrapper info)
{
    System.out.println("open called: Path="+path); //replaced with code for inserting current time in database table 
    return 0;
}
@Override
public int release(final String path, final FileInfoWrapper info)
{
    System.out.println("release called: Path="+path);//replaced with code for inserting current time in database table
    return 0;
}

1-Эти методы вызываются, когда я открываю файл, это нормально

2-Но когда я просто открываю папку, эти методы также вызываются для каждого файла в папке

Как бы я различал два вышеупомянутых. Потому что мне просто нужно вставить время, когда пользователь открывает файл и время закрытия. Не когда пользователь открывает каталог.

Пожалуйста, помогите кто-нибудь


person Syed Rahman Mashwani    schedule 17.03.2014    source источник


Ответы (1)


Используйте java.nio.File isFile() и isDirectory(), чтобы различать их.

person user1792286    schedule 15.07.2014
comment
Добро пожаловать в SO и спасибо за ваш ответ. Он был помечен для проверки, потому что он довольно краток. Не могли бы вы немного расширить это и, возможно, сообщить ОП, как и почему это помогает. Я вижу, что вы правы, но я опытный разработчик Java, если бы у ОП был опыт, чтобы понять, почему это правильно, у них вообще не было бы вопроса. - person Software Engineer; 15.07.2014