> Ho un programma che deve prendere un tot di file in una directory e
> inserirli in un campo blob di un DB Oracle. Per manipolare i file ho
> scelto di utilizzare File::Util
Scusa se non rispondo direttamente alla tua domanda, ma io mi terrei
accuratamente alla larga da questo File::Util.
Ha un'interfaccia veramente orripilante, ed ha anche dei prerequisiti
inspiegabili.
Quello che serve a te si fa banalmente con il builtin glob() (o con
File::Glob, che è un modulo core) e null'altro.
Se poi volessi scrivere codice portabile Win/*nix, basterebbe
aggiungervi File::Spec per la manipolazione dei path (per inciso, il
codice che hai postato funzionerebbe solo su Windows, in quanto hai un
"\" hardcoded come separatore.)
SEE ALSO
File::Find, File::Find::Rule
Ciao,
Emanuele
my $fu = File::Util->new();
my @images = $fu->list_dir($path, qw/--files-only --pattern=\.JPG$ --
no-fsdot/);
foreach $image (@images) {
$bin_content = $fu->load_file ("$path\\$image");
#fai quel che devi fare
}
Nel mio caso la variabile $path contiene un percorso assoluto in
formato Windows.
Il metodo load file si arrabbia e mi dice che il path che gli ho
passato non esiste... Ma come fa a non esistere se mi ha elencato
tutti i file che ci sono dentro?
Il programma mi restituisce un messaggio d'errore molto dettagliato in
cui in pratica mi mostra che il percorso assoluto che gli ho dato in
pasto se lo è elaborato e ci ha attaccato un punto davanti...
Per intenderci
C:\temp
è diventato
.\C\\Temp
Insomma, sembrerebbe che abbia "relativizzato" il percorso rispetto
alla directory in cui è contenuto lo script...
Come posso evitarlo?
Grazie in anticipo
Simone
Ha funzionato grazie ... Ci ho aggiunto solo il modulo File::Slurp,
per papparmi il contenuto
Ciao