Kashif Salman told me on 02/12/2008 09:31 AM: > On Feb 12, 2008 6:51 AM, Michael Barnes <[EMAIL PROTECTED]> wrote: >> >> John W. Krahn told me on 02/11/2008 03:47 PM: >>> Michael Barnes wrote: >>>> I thought about using lstat to get the size of a file for file >>>> comparisons. I see that lstat always returns a list of thirteen values. >>>> The references I find appear to require assignment of those 13 values >>>> to variables, even though I only want to use one. >>>> >>>> Do I really have to put >>>> >>>> ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, >>>> $atime,$mtime,$ctime,$blksize,$blocks) >>>> = lstat($filename); >>>> >>>> Just to get the $size variable populated with the file size? >>>> >>>> My ultimate goal is to check the size of huge files copied to a folder. >>>> Once I get the $size to come back the same three times in a row, >>>> indicating the file is all there, then I can move on with playing with >>>> the file. >>> You could use the -s file test operator: >>> >>> my $size = -s $filename; >>> >>> >>> But that uses stat() instead of lstat(). If you really need lstat() >>> then you could do it like this: >>> >>> lstat $filename; >>> my $size = -s _; >>> >>> >>> >>> John >> Such a wonderful wild variety of answers. Thank you all so much. It >> matters not to me whether I use stat or lstat. >> >> I have a folder being used in a dropbox environment. I have a perl >> script which examines that folder for the presence of a file, then takes >> appropriate action on it, moving it to where it needs to be, removing it >> from the dropbox folder. >> >> My problem occurs when a user places a large (>300MB) file in the >> dropbox folder. As the script processes the file, it may not be all >> there yet and as the script loops back around, it sees the file still >> there and attempts to process it again while it is still being processed >> by the first iteration. My desire was to get the file size, wait, then >> get the file size again and compare. The thought being that if the file >> returned the same size three times in a row, it could be assumed that >> the file had completely copied into the dropbox folder and could now be >> processed. >> >> I'm just trying to keep this as basic, yet functional as possible. >> >> Thanks for the various inputs. Keep them coming. This is very educational. >> >> Michael >> >> >> > > > As someone pointed, it isn't a good idea to check a file size three > times and conclude it's done processing. How about using lsof to check > if file is still in use by another process before you try to process > it with your Perl script? > I'm the new kid and this is a beginners forum, so I welcome all ideas and options. Forgiving my ignorance, would you mind giving an example of how I would do this with lsof?
Thanks, Michael -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/