Gå til innhold

Litt hjelp med filer/mapper.


Anbefalte innlegg

Hvordan sjekker jeg om en mappe inneholder ei mappe med et spesifikt format i navnet sitt?

 

Jeg skal lete etter en fil med et slags timestamp i navnet sitt for så å kontrollere at timestampet er fra en gitt dag. Som oftest i dag eller i går. Er på linux om det skulle ha noe å si.

 

mappeJegvilLeteI/200610141133_NavnPåMappe/

Tiden på mappenavnet tilsvarer: 14.oktober 2006 klokken 11:33.

 

Er litt lost nå altså.

Lenke til kommentar
Videoannonse
Annonse

postet ny i steden for å editere. Får bare noen funky feilmeldinger når jeg editerer posten min.

 

Dette er hva jeg har så langt:

  File f = new File(minmappe);
 File files[] = f.listFiles();
 for(int i=0;i<files.length;i++){
 	String filename = files[i].getName();
 	String date = filename.substring(0,8);
 	int year = Integer.parseInt(date.substring(0,4));
 	int month = Integer.parseInt(date.substring(4,6));
 	int day = Integer.parseInt(date.substring(6,8));
 }

 

 

Nå trenger jeg bare å sammenligne de datoene med dagens dato. Hvordan henter jeg ut dagens eller gårsdagensdato og sammenligner det med de 3 heltallsdatodelene mine?

 

Og så har jeg en mistanke om at den parseInt saken min feiler noe jævlig hvis det plutselig har lurt seg inn en fil som ikke har det datoformatet i starten av mappenavnet.

 

edit:

Fikk det til.

Men har et spørsmål:

      	Date today;
     	String result;
     	SimpleDateFormat formatter;

     	formatter = new SimpleDateFormat("yyyyMMdd");
     	today = new Date();      
     	result = formatter.format(today);

 

Hvordan får jeg "yesterday"?

Endret av arnizzz
Lenke til kommentar
<KUTTE>

Hvordan får jeg "yesterday"?

7038620[/snapback]

 

Tja, en naiv løsning er vel å trekke fra ett døgn på 'nå' klokkeslettet

yesterday = new Date(System.currentTimeMillis() - 24*60*60*1000);

problemer med en slik løsning vil være justerings sekunder (rundt kl 2400) og skiftene mellom sommertid og vintertid.

 

Leser du litt om GregorianCalendar så klarer du nok å lage en bedre løsning.

 

 

mvh

CPL

Lenke til kommentar
  File f = new File(minmappe);
 File files[] = f.listFiles();
 for(int i=0;i<files.length;i++){
 	String filename = files[i].getName();
 	String date = filename.substring(0,8);
 	int year = Integer.parseInt(date.substring(0,4));
 	int month = Integer.parseInt(date.substring(4,6));
 	int day = Integer.parseInt(date.substring(6,8));
 }

 

Sjekk ut FileFilter http://java.sun.com/j2se/1.4.2/docs/api/ja...FileFilter.html

Hvis du implementerer dette og sender det inn til listFiles metoden kan du f.eks filtrere ut kun filer som begynner på en gyldig dato osv

Lenke til kommentar

Tusen takk til begge. Løste problemet. Men skal sjekke File Filter da jeg fant ut jeg måtte legge til noe flere funksjoner.

 

Må finne en liste over de filene med gamlest dato. De 3 nyeste skal ikke være med. Skal se om jeg finner det ut og om det blir noe enklere med FileFilter.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...