Forums Register Login

File Renaming while getting copied.

+Pie Number of slices to send: Send
Hi Guys,

I need an approach for my requirement, any pointers will be helpful.

Requirement - I have a file (size of 20 gb) I will be copying it to a mapped drive, but while copying I have to keep my file name with an extension as ".wait" and then when it gets fully copied I have to rename it to the proper extension say ".exn".

There will be a large number of files coming in and I am looking for a approach which wont affect the performance.

P.S: The requirement is not LOCKING the file, I just have to rename it until i finish copying.

Thanks in advance.



... Happy Developing
+Pie Number of slices to send: Send
Please read this.
+Pie Number of slices to send: Send
 

Bear Bibeault wrote:Please read this.



Hi Bear, sorry. read that but how to change the subject now : D
+Pie Number of slices to send: Send
 

Robin John wrote:Hi Bear, sorry. read that but how to change the subject now : D



You don't see an Edit button on the post?

Anyway, I don't understand the question. I assume it's the target that these requirements refer to, i.e. the file you are copying the data to? If so, then just copy the data to a file whose name is "blabla.wait" and when you're finished copying, rename it appropriately.
+Pie Number of slices to send: Send
aaaah... got it.. now I know if you press edit on the comment box you can also change the subject... may be we should have one edit button beside the subject line... just an opinion : )

Okay for the question..

The problem is when I copy the file entirely and put it in that folder it will be picked up by another application and that will check if the extension is .exn and if not it will be purged. The application checks the folder for every 0.3 seconds if the file is modified or not and then picks it up.

so I thought of renaming the file just before the end of file is reached, can this be done ? and if I go for your approach will 0.3 seconds will be enough to rename the file after its copied "everytime".

I know this may sound obvious but just wanted to confirm.

Regards.
+Pie Number of slices to send: Send
I must be misunderstanding your requirements. Now you seem to be saying that the receiving application will purge files whose extension isn't .exn, every 0.3 seconds. You can't copy a 20MB file anywhere in 0.3 seconds. So this doesn't make any sense to me.

And assuming that wasn't what you meant to say, I don't understand why you want to rename the file before you finish copying it. That just exposes you to the risk that the receiving application will do something with it before the copying is complete.

You can certainly rename a file in under 0.3 seconds but I don't understand why that's an issue at all. If the thing works the way I expect it does (as opposed to the way you're describing it), then the receiving application will see your renamed file within 0.3 seconds of your renaming it. Assuming it does its sweep every 0.3 seconds, that is.
+Pie Number of slices to send: Send

This is an interesting problem. I may have come across it a time or two.

Facts:
1. When large files are copied, OS will create the node for that file before completing the copying and writing EOF. Other applications can see and read that file. They can not write, rename, move or delete that file.
2. In terms of speed, rename is faster than move. And move is faster than copy.
3. Rename CAN NOT occur until EOF is written, that is, until file is completed copying.
4. I am assuming the file in question and the application/scripts are all on a local system. FTP files have slightly different facts.

Is the question here:

How can I ensure that the receiving application does NOT see the file until it is completed copying ?



Randi
What's gotten into you? Could it be this tiny ad?
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 2165 times.
Similar Threads
write to the beginning of a file
vi and HTML files - ARGH!
Record Locking design - any problems with following Monkhouse approach?
network dissconnection while copy file data in database
decodeStream() OR Put large file in ASSETS folder
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 29, 2024 03:14:46.