Hmmm, my thoughts.
Use stat to compare the inode access/modify/change
times for the data and control files. Also check that the
control file is big enough to be finished. If all the inode
times are near equal, and the files are resonable sizes, you
may be able to assume the file is okay.
my $name = 'foo.txt';
my $cnrl_name = $name . '.ctrl';
if ( ((stat($cnrl_name))[9] > (stat($name))[9]) and ((-s($cnrl_name))>
+10) )
{
copy $name, "dir/$name";
unlink $name, $cnrl_name;
}
It would be better if filenames were always unique or the ftp server used flock or lockf on the files, but it may be possible to deal with your problem. I have no idea if this solution will work, I really don't know all that much about inodes and stuff.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|