Java klarar inte att ta bort en CMYK bild, men en RGB fungerar bra?

Permalänk
Medlem

Java klarar inte att ta bort en CMYK bild, men en RGB fungerar bra?

Hej!

Jag pillar på en bild-databas i nuläget och har stött på ett lustigt problem.
När jag indexerar mina bilder via java vill jag flytta de indexerade filerna till en annan mapp på servern.

Jag använder då "Java.io"-funktionen renameTo som nedan

File image = new File("min_fil_som_ar_rgb_eller_cmyk.jpg"); boolean moved = image.renameTo(new File(imgPath, indexedImage.getFilename()));

Problemet är då bilden är CMYK, då returnerar renameTo false medan den för alla RGB-filer returnerar true.
Jobbigt när det inte blir någon exception utan bara att den returnerar false så jag vet inte hur jag ska felsöka det riktigt.

Tips, idéer?!

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Medlem
Skrivet av ePoint:

Hej!

Jag pillar på en bild-databas i nuläget och har stött på ett lustigt problem.
När jag indexerar mina bilder via java vill jag flytta de indexerade filerna till en annan mapp på servern.

Jag använder då "Java.io"-funktionen renameTo som nedan

File image = new File("min_fil_som_ar_rgb_eller_cmyk.jpg"); boolean moved = image.renameTo(new File(imgPath, indexedImage.getFilename()));

Problemet är då bilden är CMYK, då returnerar renameTo false medan den för alla RGB-filer returnerar true.
Jobbigt när det inte blir någon exception utan bara att den returnerar false så jag vet inte hur jag ska felsöka det riktigt.

Tips, idéer?!

Hej,

Har bara lite generella råd. renameTo är lite lurig och det är en rad felorsaker som kan ske.

Saxat från javadocen

Citat:

The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists.

Så några grejer att kolla. Kan usern som javaprocessen körs som läsa filen? Flyttar du mellan filsystem (inte garanterat att fungera)? Finns filen redan? Kan usern skriva till målkatalogen?

Ett tips är att använda commons-io och deras FileUtils.moveFile t.ex. som hanterar en rad av de mer annorlunda flyttfallen.

//C

Permalänk
Medlem
Skrivet av conio:

Ett tips är att använda commons-io och deras FileUtils.moveFile t.ex. som hanterar en rad av de mer annorlunda flyttfallen.

Fungerade bra. Dock sliter jag mitt hår för jag begriper inte vad skillnaden rent fil-systemmässigt är mellan RGB och CMYK..

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Medlem
Skrivet av ePoint:

Fungerade bra. Dock sliter jag mitt hår för jag begriper inte vad skillnaden rent fil-systemmässigt är mellan RGB och CMYK..

Det ska inte vara någon skillnad mellan två bildfiler för de filsystem jag någonsin kommit i kontakt med. Jag kan tänka mig att det ligger nån process igång som håller en koppling till din CMYK-fil, en image-viewer eller något liknande.

Visa signatur

Kom-pa-TI-bilitet