You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Thursday, July 27th 2006, 10:05pm

Datei mit renameTo() umbenennen

Hi,

ich möchte eine Datei umbenennen, nur irgenwie will das nicht so richtig klappen.
Der Code sieht ungefähr so aus:

Java Quellcode

1
2
3
4
5
File source = new File("test.txt");
		File destination = new File( generateFrom(source) );
 
		boolean res = source.renameTo(destination);
		System.out.println(res);


Ich denk mal das Problem liegt irgendwie beim erstellen der 2.Datei und in der Methode generateFrom(source). Wenn ich einen String statt der generateFrom() Methode verwende, dann klappt es. Ich will aber den neuen Dateiname aus der Datei erzeugen.
Ich würde mich freuen, wenn mir da jemand nen Tipp geben könnte.

Chrischian

2

Thursday, July 27th 2006, 10:11pm

was genau liefert die generateFrom methode denn zurück?

sollte nur den neuen dateinamen enthalten
sind auch keine zeilenumbrüche oder irgendwelche umlaute reingerutscht?

die syntax ist schon ok..

Java Quellcode

1
new File(alt).renameTo(new File(neu))

http://www.galileocomputing.de/openbook/javainsel5/javainsel12_000.htm#t2t36

3

Thursday, July 27th 2006, 10:26pm

generateFrom gibt mir ne md5 Summe über die Datei als String zurück. Da sind dann Ziffern und Buchstaben von a bis f dabei. Sollte also eigentlich in Ordnung sein, zumindest kann ich mit destination.createNewFile() eine neue Datei mit dem String anlegen.

4

Friday, July 28th 2006, 7:08am

renameTo scheitert meines Wissens nach, wenn die Datei bereits existiert.
Falls nicht, paste bitte generateFrom here, bzw. den Ergebnisstring von generateFrom.

hth

5

Friday, July 28th 2006, 6:14pm

Also das ist jetzt der Code zu generateFrom.

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import edu.harvard.hul.ois.jhove.*;
 
 
               String generateFrom( File file )throws Exception{
 
		Checksummer check = new Checksummer();
		byte[] part = new byte[8192];
		InputStream in = new FileInputStream(file); 
 
		for( int i = 0; (i = in.read( part )) > -1;){
			check.update(part,0,i);
		}
 
		return check.getMD5();

Die Checksummer Klasse gibt mit laut Doku die MD5 Summe als hex String zurück. Der String sieht dann z.B. so aus: 74be16979710d4c4e7c6647856088456
Die Doku gibt hier: http://hul.harvard.edu/jhove/doc/edu/har…hecksummer.html
Dateien, die schon so heißen gibts in dem Verzeichnis auch nicht.

6

Friday, July 28th 2006, 7:11pm

Falls du unter Win32 arbeitest, kann es sein, dass die Länge des Pfades 255 Zeichen überschreitet (inklusive des Dateinames)?

Würde

Java Quellcode

1
File destination = new File( generateFrom(source).substring (0, 1) );

funktionieren?

7

Friday, July 28th 2006, 7:27pm

Ich habs gefunden! Ganz schön blöd. Naja

Ich hab einfach in der generateFrom Methode vergessen den InputStream mit in.close() zu schließen, weil erst dann gibt der seine Ressourcen wieder frei.

Danke für eure Hilfe. :D

Social bookmarks