Move a directory to downloaded files first when it's done

Use this forum to flesh out your feature request before you enter it in <a href="http://dcpp.net/bugzilla/">Bugzilla</a>.

Moderator: Moderators

Locked
chrille112
Posts: 5
Joined: 2005-12-01 13:02

Move a directory to downloaded files first when it's done

Post by chrille112 » 2005-12-01 13:20

Hi!

Say that you download a directory with 20 files in it. As it is now, as soon as one if the files are downloaded, a directory will be created in the finished downloads directory, and the file will be moved there.

Is it possible to have the option that the directory won't be created unitl all of the contents have been downloaded?

As it is today, I have a finished downloads directory full of half-empty dirs.. :(

/Chrille

Pothead
Posts: 223
Joined: 2005-01-15 06:55

Post by Pothead » 2005-12-01 19:52

So where should the finished files be stored, before they goto the directory you specified. ?

chrille112
Posts: 5
Joined: 2005-12-01 13:02

Post by chrille112 » 2005-12-02 05:56

Pothead wrote:So where should the finished files be stored, before they goto the directory you specified. ?


In unfinished downloads

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2005-12-02 09:11

This isn't in bugzilla, though it has been requested before. I'm not sure how I feel about it, or how it should be implemented - usually the issues behind it (sharing incomplete sets of files) can be solved through other features instead.

chrille112
Posts: 5
Joined: 2005-12-01 13:02

Post by chrille112 » 2005-12-02 09:44

GargoyleMT wrote:This isn't in bugzilla, though it has been requested before. I'm not sure how I feel about it, or how it should be implemented - usually the issues behind it (sharing incomplete sets of files) can be solved through other features instead.


How can it be solved? What features can make this?

Can't you just add an option in advanced, "Don't move directories until all of it's contents have been downloaded"?
Then add a routine that checks after a file has been downloaded, if it's the last file in the directory. If not, leave it in the unfinished, if it is - move all of the files to finished downloads

I would really like this feature...

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2005-12-02 12:10

chrille112 wrote:Then add a routine that checks after a file has been downloaded, if it's the last file in the directory. If not, leave it in the unfinished, if it is - move all of the files to finished downloads

Files are eased out of DC++'s queue once they're completed, what you're asking for probably would require that to change, and for DC++ to add functions to the queue to indicate "finished file, waiting for moving". That's not a problem, it's just a pretty substantial change to DC++'s internals. It's not completely obvious how to handle some situations.

base_directory\file_a.ext
base_directory\file_b_queued_separately.ext
base_directory\file_set\file_c.ext
base_directory\file_set\file_d.ext

Waiting to move files only works, basically, if they were all queued at the same time. In the above example, you want file_a and file_b to be moved to the destination when they're finished, but you want file_c to stay until file_d is completed (or vice-versa).


If hubs are worried about you sharing incomplete sets of files, having a "container" to represent all of them makes more sense - something like MAGMA or another type of "collection file" (which is the generic term for this.) If you're worried about starting a download and getting an incomplete set, the collection file would serve the purpose too - it would enable you to queue the files all at once as a logical set. If everyone starts downloads from the collection file, nobody will end up with an incomplete set, and it won't matter if the files in the set are shared before you have them all.

Once discussion is finished, someone who wants this should enter it into bugzilla.

chrille112
Posts: 5
Joined: 2005-12-01 13:02

Post by chrille112 » 2005-12-02 12:35

GargoyleMT wrote:
chrille112 wrote:Then add a routine that checks after a file has been downloaded, if it's the last file in the directory. If not, leave it in the unfinished, if it is - move all of the files to finished downloads

Files are eased out of DC++'s queue once they're completed, what you're asking for probably would require that to change, and for DC++ to add functions to the queue to indicate "finished file, waiting for moving". That's not a problem, it's just a pretty substantial change to DC++'s internals. It's not completely obvious how to handle some situations.

base_directory\file_a.ext
base_directory\file_b_queued_separately.ext
base_directory\file_set\file_c.ext
base_directory\file_set\file_d.ext

Waiting to move files only works, basically, if they were all queued at the same time. In the above example, you want file_a and file_b to be moved to the destination when they're finished, but you want file_c to stay until file_d is completed (or vice-versa).


If hubs are worried about you sharing incomplete sets of files, having a "container" to represent all of them makes more sense - something like MAGMA or another type of "collection file" (which is the generic term for this.) If you're worried about starting a download and getting an incomplete set, the collection file would serve the purpose too - it would enable you to queue the files all at once as a logical set. If everyone starts downloads from the collection file, nobody will end up with an incomplete set, and it won't matter if the files in the set are shared before you have them all.

Once discussion is finished, someone who wants this should enter it into bugzilla.


I see what you mean.

The problem is with subdirectories, as you said in your post. I'm not sure how to handle it... There has to be some recursive directory thing. No directory should be moved until all of the sub-dirs or root dirs has finished.

How do you mean with the hub collection file? Isn't the problem that you get incomplete sets when a user disconnects when the download hasn't finished? If the user disconnects, a collection file won't make a difference?

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2005-12-02 12:52

chrille112 wrote:The problem is with subdirectories, as you said in your post. I'm not sure how to handle it... There has to be some recursive directory thing. No directory should be moved until all of the sub-dirs or root dirs has finished.

No, the problem isn't necessarily subdirectories, but "grouping" queued downloads so you know when the group is finished transferring. To some extent, you could use the date it was queued, but that will break if you download a single file, then use the "download whole directory" option.

chrille112 wrote:How do you mean with the hub collection file? Isn't the problem that you get incomplete sets when a user disconnects when the download hasn't finished? If the user disconnects, a collection file won't make a difference?

It will if you share the collection file first. With popular enough sets of files, there will be multiple sources online, so I'm not sure how realistic your scenario is.

Locked