Zdravím, File.renameTo() nejspíš volá funkci systému pro přejmenování souboru – a to lze provést jenom v rámci jednoho oddílu. Pokud se soubor „přesouvá" na jiný oddíl, musí se na něj okopírovat a v původním umístění smazat. Popisuje to i JavaDoc k File.renameTo(), kde je explicitně zmíněno přesouvání mezi různými oddíly: „Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another".
Můžete dál používat renameTo() pro případ, kdy jsou obě umístění na stejném oddílu, ale musíte doplnit fallback pro případ, kdy renameTo() selže a pak soubor klasicky okopírovat a smazat. S pozdravem Filip Jirsák Dne 2. leden 2009 17:45 <[email protected]> napsal(a): > Dobrý den > > už několikátý den řeším problém s uploadem obrázků na nově instalovaný > Tomcat55 na Linux(CentOS5, Java6Sun). > > Uživatel vybere na svém disku soubor a odešle formulář. > Soubor se uloží do /tmp na serveru. > Aplikace si soubor přesune do své složky > <catalinaHome>/webapps/knihovna/images > > Problém: > Soubor se uloží do /tmp, ale aplikace soubor nepřesune. Žádná exception. Jen > success = false; > boolean success =myFile.renameTo(destination); > > Myslel jsem špatná práva - zkontrolováno > Myslel jsem na catalina.policy , ale Tomcat se nespoští s policy restrikcí. > Aplikace na jiných strojích funguje správně, dokonce jsem připravil stejné > prostředí OS i Java i Tomcat na zvláštním stroji - naprosto stejné. > Knihovny Tomcatu jsou přes linky pospojován do /usr/share/tomcat5, myslel > jsem tedy, že by mohl být problém v odkazech, do contextu jsem přidal > allowLinking="true". > Tomcat se spouští jako služba pod uživatelem tomcat. > > Rozdíly mezi nefunkční aplikací na vzdáleném stroji a funkční aplikací na > testovacím stroji jsou: > Na vzdáleném stroji je /tmp samostatný oddíl (LVM). > Funkční aplikaci spouštím na localhostu. > > Děkuji za radu, chápu, že tento typ pproblém se přes email těžko řeší. Ale > třeba se někdo s něčím podobným už setkal. > Přeji mnoho radosti s Javou v novém roce > Tomáš Jurman > > -- Filip Jirsák [email protected]
