Hello,
With help from this forum, I’ve been successful in parsing through
directories of thousands of graphics files. I need to determine which
files are postscript EPS files. Any files that aren’t EPS files I can
assume are TIFF files. I have to do this because our [unix] publishing
system doesn’t use file extensions, so, in its image library, all
graphics files have no extensions. I’m needing to parse through these
files to get rid of any color files, make them grayscale. Anyway, I have
a directory now with over 23,000 files in it. I’ve run a script with
this clause in it.
Dir.glob("*").each do |file|
if /%!PS-Adobe/ =~ open(file) {|f| f.gets}
File.rename(file, file + “.eps”)
end
end
It runs just fine and does a rename for 3123 files. But, then, suddenly,
it fails with a message:
Datum: Mon, 15 Oct 2007 21:21:36 +0900
Von: Peter B. [email protected]
An: [email protected]
Betreff: File.rename failing after a few thousand successes . . .
you don’t have the right to read or to write that particular file,
maybe because it was created by another user or by root, and now
you’re running your Ruby script as a normal user.
On the command line, you can change the rights to read, write and
execute files, as root, using
the chmod command.
You need to get the script to display the name of the file that it
failed on (unless you simply didn’t show it in your excerpt) and then
look at the permissions for the file in question.
Also it would be a good idea to catch the exception in your code so that
you can report the error and then carry on. Also make sure that you do
not process the any files that you have already processed on a previous
run by ignoring file names that end in “.eps”.
Datum: Mon, 15 Oct 2007 21:21:36 +0900
Von: Peter B. [email protected]
An: [email protected]
Betreff: File.rename failing after a few thousand successes . . .
you don’t have the right to read or to write that particular file,
maybe because it was created by another user or by root, and now
you’re running your Ruby script as a normal user.
On the command line, you can change the rights to read, write and
execute files, as root, using
the chmod command.
Thanks, Axel. Well, yes, the original files are on Unix, but, all my
work is happening on a Windows server. I copy it over via SAMBA. But,
I’m a network administrator with full rights on the server. Maybe the
copying via SAMBA pulled over some weird permissions or something. I’ll
look into this further. Thanks again.
I’ve had weird stuff happen on NFS before–using a local drive worked.
GL!
Peter B. wrote:
Hello,
With help from this forum, I’ve been successful in parsing through
directories of thousands of graphics files. I need to determine which
files are postscript EPS files. Any files that aren’t EPS files I can
assume are TIFF files. I have to do this because our [unix] publishing
system doesn’t use file extensions, so, in its image library, all
graphics files have no extensions. I’m needing to parse through these
files to get rid of any color files, make them grayscale. Anyway, I have
a directory now with over 23,000 files in it. I’ve run a script with
this clause in it.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.