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/


Reply via email to