FileSystemWatcher: игнорировать созданные временные и призрачные файлы

Я реализовал службу наблюдателя в java, которая отслеживает изменения в папках. Каждый раз, когда файл Word создается, изменяется или удаляется, он создает множество временных файлов и файлов-призраков. У меня вопрос, как игнорировать эти файлы? Я пытался проверить, не являются ли они скрытыми файлами, но это не так. Мне нужно решение, которое работает со всеми типами приложений, а не только со словом Microsoft Word.

Спасибо


person user1000258    schedule 11.11.2011    source источник
comment
У временного файла word есть ~ в конце (IIRC), и я считаю, что весь пакет M $ office делает это, однако каждая программа имеет свое собственное соглашение с временными файлами   -  person ratchet freak    schedule 11.11.2011


Ответы (1)


Мой быстрый тест показывает обратное: и оболочка DOS, и Java IO API говорят, что файлы Word tmp скрыты, то есть:

DIR /A:H 

перечисляет файлы Word tmp.

Следующая простая тестовая программа сообщает о файлах Word tmp как о скрытых:

import java.io.File;

public class Hidden{
   public static void main(String[] args){
      File dir = new File(args[0]);
      for (File file : dir.listFiles()){
         System.out.println(file + " is hidden? " + file.isHidden());
      }     
   }
}

Тестовая среда: WinXP Professional + JDK 1.6

person Gyula    schedule 11.11.2011
comment
Это не совсем правда. когда FileSystemWatcher указывает на создание файла ~ wrdxxxx.tmp, DIR / A: H показывает что-то еще ~ $ b ... docx, а ~ wrdxxxx.tmp сшивается как файл, который не скрыт. - person Idan; 22.12.2013