Main klassen
------------
class Main
{
public static void main(String [] args)
{
Counter tråd=new Counter();
// tråd.setDaemon(true);
tråd.start();
}
}
---------------
counter klassen(den centrale del)
--------------------------------
import java.io.File;
import java.io.BufferedOutputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
class Counter extends Thread implements DbInterface
{
String date;
String timestamp;
int weeknumber;
String fraFolder="
c://Java//Projekter//Counter/fra"; String tilFolder="
c://Java//Projekter//Counter/til"; File folder;
public Counter()
{
folder=new File(fraFolder);
}
public void run()
{
while (true)
{
File [] filer=folder.listFiles();
for (int i=0; i<filer.length; i++)
{
System.out.println(getDato(filer[i]));
// copyFile(filer[i].getPath());
// gemIDB(getFileName(filer[i]), timestamp, sidstændret, getFileSize(filer[i]), ugenummer);
// filer[i].delete();
}
try
{
sleep(2000);
} catch(InterruptedException e)
{
System.out.println(e);
}
}
}
//Service-Metoder
private void makeTimestamp()
{
}
//Færdige metoder
private void gemIDB(String navn, String timestamp, String sidstændret, String size, int ugenummer)
{
DbAdgang db=new DbAdgang();
int resultat = db.insert(navn, timestamp, sidstændret, size, ugenummer);
System.out.println(resultat);
}
private void copyFile(String sourcePath)
{
try
{
File source=new File(sourcePath);
System.out.println(sourcePath);
BufferedInputStream in=new BufferedInputStream(new FileInputStream(source));
BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream((new File(tilFolder)+"//"+source.getName())));
int data;
while((data=in.read())!=-1)
{
out.write(data);
}
in.close();
out.close();
}catch(FileNotFoundException e)
{
System.out.println(e);
}catch(IOException e)
{
System.out.println(e);
}
}
private String getFileSize(File file)
{
String resultat="";
long size = file.length();
if (size>=1024 && size<(1024*1024))
resultat = (size/1024) + "." + (size%1024) + "Kb";
else if (size>=(1024*1024) && size<(1024*1024*1024))
resultat = (size/(1024*1024)) + "." + (size%(1024*1024));
else if (size>=(1024*1024*1024) && size<(1024*1024*1024*1024))
resultat = (size/(1024*1024*1024)) + "." + (size%(1024*1024*1024));
return resultat;
}
private String getFileName(File file)
{
return file.getName();
}
private long getDato(File file)
{
return file.lastModified();
}
}
-----------------------------------
DB-klassen
----------------------------------
import java.net.URL;
import java.sql.*;
import java.util.*;
interface DbInterface{
static final String driver = "jdbc:
mysql://localhost/"; static final String databasenavn = "file_super";
static final String brugernavn = "root";
static final String password = "";
/*public void findAlle(AbstractList list);
public Object findId(int id);
public boolean exists(int id);
public int insert(Object e);
public int update(Object e);
public int delete(Object e);*/
//statisk inner class
class DbAdgang{
DatabaseMetaData dma;
static Connection con;
public DbAdgang(){
this(driver, brugernavn, password);
}
public DbAdgang(String odbcdrv,String bruger, String passwd)
{
String url = odbcdrv + databasenavn;
try{
//load af driver
// Class.forName("sun.jdbc.odbc.odbc");
Class.forName("com.mysql.jdbc.Driver");
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){
System.out.println("Kan ikke lokalisere driver");
System.out.println(e.getMessage());
}
try{
//forbindelse til databasen
// con = DriverManager.getConnection(url, bruger, passwd);
con = DriverManager.getConnection("jdbc:
mysql://localhost/file_super");
dma = con.getMetaData(); //få fat i meta data
System.out.println("Forbindelse til " + dma.getURL());
System.out.println("Driver " + dma.getDriverName());
}//slut try
catch(Exception e){
System.out.println("Problemer med forbindelse til databasen");
System.out.println(e.getMessage());
}//slut catch
}
public void closeDb(){
try{
con.close();
}
catch (Exception e){
System.out.println("Fejl ved lukning " + e.getMessage());
}
}
public static Connection getDBcon(){
return con;
}
public int insert(String name, String timestamp, String changed, String size, int week)
{
int rc=-1;
String query="INSERT INTO fileinfo VALUES('" + name + "', '" + timestamp + "', '" + changed + "', '" + size + "', 'null', " + week + ")";
try{
Statement stmt = con.createStatement();
rc = stmt.executeUpdate(query);
}
catch(Exception ex){
System.out.println("Insert exception i db: "+ex);
}
return(rc);
}
}
}
--------------------------------
Hvis der er nogen der har en bedre ide' til hvordan at man stopper brugeren fra at kunne lukke det ned.. helt og aldeles... skal ikke engang kunne trykke på krydset.... så er jeg åben for forslag med vedhæftede eksempler.. ;)
btw.. nogen af jer der ved hvordan man let og hurtigt får en long (timeinmillis) over i et dato objekt efter eget valg hvad format angår??