The moose likes I/O and Streams and the fly likes File Renaming while getting copied. Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


JavaRanch » Java Forums » Java » I/O and Streams
Reply Bookmark "File Renaming while getting copied." Watch "File Renaming while getting copied." New topic
Author

File Renaming while getting copied.

Robin John
Ranch Hand

Joined: Sep 10, 2008
Posts: 261

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

This message was edited 1 time. Last update was at by Robin John

Bear Bibeault
Author and opinionated walrus
Marshal

Joined: Jan 10, 2002
Posts: 48714

Please read this.


[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
Robin John
Ranch Hand

Joined: Sep 10, 2008
Posts: 261

Bear Bibeault wrote:Please read this.


Hi Bear, sorry. read that but how to change the subject now : D
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 12823

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.
Robin John
Ranch Hand

Joined: Sep 10, 2008
Posts: 261

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.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 12823

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.
Randi Randwa
Greenhorn

Joined: Feb 21, 2009
Posts: 7

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
 
 
subject: File Renaming while getting copied.
 
WebSphere development made easy
without the weight of IBM tools
http://www.myeclipseide.com