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