Peter Hickman
7/24/2007 2:06:00 PM
Peter Bailey wrote:
> Hi,
> I'm tryiing to determine that, for every TIFF file I have, is there a
> corresponding PDF file, and, if there isn't, then, notate that in the
> log. If there is a PDF file, then, don't log it. So, the resulting log
> should show me a bunch of PDF files that I'll need to create, so that I
> have a PDF for every TIFF I have. This script below seems to be listing
> every single PDF file as not being there, even though the file's there.
> Whew. Obviously, I must have something wrong with my Boolean logic. . .
> ..
>
> Thanks,
> Peter
>
>
> ...
> list.each do |tifdir|
> pdfdir = tifdir
> Dir.chdir("L:/tiff/cdtiff/#{tifdir}")
> Dir.glob("*.tif").each do |tiffile|
> pdffile = File.basename(tiffile, ".tif") + ".pdf"
> tifthere = File.exists?("L:/tiff/cdtiff/#{tifdir}/#{tiffile}")
>
What is this line for? The only reason that tiffile has a value is that
the Dir.glob("*.tif") returned a filename proving the existence of the
tif file, Dir.glob() is not going to return the names of non existent
files or are you expecting the file to disappear? If so you have other
problems.
Also if pdfdir is a copy of tifdir you should probably just find a
better name for the variable and simplify some more. There is quite a
bit of superfluous code here and it will only serve to confuse you at a
later date when you come back to it and ask yourself "Why did I do that?"
Try this simple rewrite:
list.each do |dir|
Dir.chdir("L:/tiff/cdtiff/#{dir}")
Dir.glob("*.tif").each do |tiffile|
pdffile = File.basename(tiffile, ".tif") + ".pdf"
pdfthere = File.exists?("L:/pdf/single/#{dir}/#{pdffile}")
if ! pdfthere
File.open("E:/logs/pdfnotthere.txt", "a") { |f| f.print "#{dir}/#{pdffile} not there\n" }
end
end
end
> pdfnotthere = !File.exists?("L:/pdf/single/#{pdfdir}/#{pdffile}")
> if tifthere && pdfnotthere
> File.open("E:/logs/pdfnotthere.txt", "a") { |f| f.print
> "#{pdfdir}/#{pdffile} not there\n" }
> end
> end
> end
>