Pessoal boa tarde.
Estou precisando desenvolver uma rotina que
monitore se algum arquivo foi alterado em uma determinada pasta e move-lo para outra.
Alguem tem alguma idéia.
Obrigado.
procure por FileListener
e pelo método isLastModified()
Voce quer somente verificar se algum arquivo foi alterado ou não e enviar para outra pasta?
Que tipo de arquivo é esse?
ele é cadastrado em algum lugar?
[quote=dudu_sps]Voce quer somente verificar se algum arquivo foi alterado ou não e enviar para outra pasta?
Que tipo de arquivo é esse?
ele é cadastrado em algum lugar?[/quote]
isto mesmo…
ele ja esta na pasta…
e um arquivo do forms… extensão .fmb
[quote=finotti]procure por FileListener
e pelo método isLastModified()[/quote]
vou procurar… obrigado…
[quote=aramatos][quote=finotti]procure por FileListener
e pelo método isLastModified()[/quote]
vou procurar… obrigado…[/quote]
onde eu eu baixo esta classe…??
eu tentei usar um exemplo  mas deu erro “cannot resolv simbol” apontando para o FileListener…
segue o codigo
/*
- This code is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
- This code is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with this program; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA  02111-1307, USA.
 */
 package no.geosoft.cc.io;
import java.util.*;
import java.io.File;
import java.lang.ref.WeakReference;
/**
- Class for monitoring changes in disk files.
- Usage:
- 
- Implement the FileListener interface.
 
- 
- Create a FileMonitor instance.
 
- 
- Add the file(s)/directory(ies) to listen for.
 
- fileChanged() will be called when a monitored file is created,
- deleted or its modified time changes.
- 
@author Jacob Dreyer
 */
 public class FileMonitor
 {
 private Timer timer_;
 private HashMap files_; // File -> Long
 private Collection listeners_; // of WeakReference(FileListener)
/**
- Create a file monitor instance with specified polling interval.
- 
@param pollingInterval  Polling interval in milli seconds.
 */
 public FileMonitor (long pollingInterval)
 {
 files_ = new HashMap();
 listeners_ = new ArrayList();
timer_ = new Timer (true);
timer_.schedule (new FileMonitorNotifier(), 0, pollingInterval);
}
/**
- Stop the file monitor polling.
 */
 public void stop()
 {
 timer_.cancel();
 }
/**
- Add file to listen for. File may be any java.io.File (including a
- directory) and may well be a non-existing file in the case where the
- creating of the file is to be trepped.
- 
- More than one file can be listened for. When the specified file is
- created, modified or deleted, listeners are notified.
- 
@param file  File to listen for.
 */
 public void addFile (File file)
 {
 if (!files_.containsKey (file)) {
 long modifiedTime = file.exists() ? file.lastModified() : -1;
 files_.put (file, new Long (modifiedTime));
 }
 }
/**
- Remove specified file for listening.
- 
@param file  File to remove.
 */
 public void removeFile (File file)
 {
 files_.remove (file);
 }
/**
- Add listener to this file monitor.
- 
@param fileListener  Listener to add.
 */
 public void addListener (FileListener fileListener)
 {
 // Don’t add if its already there
 for (Iterator i = listeners_.iterator(); i.hasNext(); ) {
 WeakReference reference = (WeakReference) i.next();
 FileListener listener = (FileListener) reference.get();
 if (listener == fileListener)
 return;
 }
// Use WeakReference to avoid memory leak if this becomes the
// sole reference to the object.
listeners_.add (new WeakReference (fileListener));
}
/**
- Remove listener from this file monitor.
- 
@param fileListener  Listener to remove.
 */
 public void removeListener (FileListener fileListener)
 {
 for (Iterator i = listeners_.iterator(); i.hasNext(); ) {
 WeakReference reference = (WeakReference) i.next();
 FileListener listener = (FileListener) reference.get();
 if (listener == fileListener) {
 i.remove();
 break;
 }
 }
 }
/**
- 
This is the timer thread which is executed every n milliseconds 
- 
according to the setting of the file monitor. It investigates the 
- 
file in question and notify listeners if changed. 
 */
 private class FileMonitorNotifier extends TimerTask
 {
 public void run()
 {
 // Loop over the registered files and see which have changed.
 // Use a copy of the list in case listener wants to alter the
 // list within its fileChanged method.
 Collection files = new ArrayList (files_.keySet());for (Iterator i = files.iterator(); i.hasNext(); ) { 
 File file = (File) i.next();
 long lastModifiedTime = ((Long) files_.get (file)).longValue();
 long newModifiedTime = file.exists() ? file.lastModified() : -1;// Chek if file has changed 
 if (newModifiedTime != lastModifiedTime) {// Register new modified time files_.put (file, new Long (newModifiedTime)); // Notify listeners for (Iterator j = listeners_.iterator(); j.hasNext(); ) { WeakReference reference = (WeakReference) j.next(); FileListener listener = (FileListener) reference.get(); // Remove from list if the back-end object has been GC'd if (listener == null) j.remove(); else listener.fileChanged (file); }} 
 }
 }
 }
/**
- Test this class.
- 
@param args  Not used.
 */
 public static void main (String args[])
 {
 // Create the monitor
 FileMonitor monitor = new FileMonitor (1000);
// Add some files to listen for
monitor.addFile (new File ("/home/jacob/test1.txt"));
monitor.addFile (new File ("/home/jacob/test2.txt"));
monitor.addFile (new File ("/home/jacob/"));
// Add a dummy listener
monitor.addListener (monitor.new TestListener());
// Avoid program exit
while (!false) ;
}
private class TestListener
implements FileListener
{
public void fileChanged (File file)
{
System.out.println ("File changed: " + file);
}
}
}
Tenta fazer isso:
File file = new File("SeuArquivo.TXT");
long l = file.lastModified(); //retorna em milissegundos a data de modificação do arquivo
EDIT: daí é só vc usar sua imaginação pra comparar as datas.
P.S.: O método listFiles() da classe File serve para retornar os arquivos da pasta.
até
http://www.guj.com.br/posts/list/133342.java#718024
Neste post tem um código que faz exatamente isso, monitora uma pasta e retorna os arquivos com um determinado nome seguindo uma regex parametrizada.
At,
Luca Martins