VMware Communities
admin
Immortal
Immortal

Drag and drop file copy issue

If I want to copy several files from the host to the guest, I figured I would select the set and then drag them all at once. It turns out that doesn't work. A sheet drops down to show the copy progress and the progress bar seems to correctly drag for the total operation, but something goes wrong once the files are inside the VM. When the first file finishes, an error dialog pops up in the Windows guest saying the file couldn't be moved. The error dialog in the guest is unresponsive until the total copy finishes. When it is done, there is actually a stack of error dialog in the guest, once for each file copied. The files do not appear in the location I dropped them, but I have not checked to see that they aren't still laying in the DnD temp folder.

I tried another approach, drop each file individually, but don't wait for each one to finish. This actually works, though the progress display is a little messed up. In this case, a queue should probably be created and displayed in some fashion on the progress sheet. The observed behavior is the progress bar rapidly jumps between the correct position for each of the files being simultaneously copied. When the progress sheet vanishes, all the files are in the location I dragged them to, so this approach technically works but could use some polish. Hopefully, the first issue will be corrected so this isn't necessary, but this case could still come up when copying sets of files from various locations such that a single drop operation can't be used for all files at once.

0 Kudos
6 Replies
rcardona2k
Immortal
Immortal

What size files are you dropping into the guest? I tried dragging the Fusion EULA, release notes, FAQ files (~Kb) and mixed in a 1.5 Mb .dmg file and they all dragged fine into my XP-SP2 guest.

0 Kudos
admin
Immortal
Immortal

~100MB each, various SDKs I need installed

Ultimately, I will setup the NAT such that I can mount an SMB share from the guest on the host for normal work. In the meantime, I figured I could drag and drop copy the few files I needed to get everything installed and found this problem when doing so. The really big stuff was installed from ISOs mounted by VMware for its emulated CD-ROM drive. I did copy over one file that was about 500MB alone and that took longer than I think it should but it worked fine when it was just the one by itself.

0 Kudos
rcardona2k
Immortal
Immortal

Those are big files. You can you use shared folders or like you said mount an smb share and that will probably work much better for you.

0 Kudos
admin
Immortal
Immortal

I found another nasty one. I made another disk so I can keep my data separate from the OS. I copied a really big file by dropping it on D:\. The copy to the guest put the file in C:\Windows\TEMP\VMwareDnD and then copied it to the actual drop location. This does a few things that are not so nice. One, it is really inefficient since it gets copied twice. Two, the otiginal file in the temp directory is never removed after the operation is complete. I have to go and clean up the temp directory manually. Not cool.

0 Kudos
topgunli
Enthusiast
Enthusiast

Actually if any DnD files left over, they will be removed after next reboot. So if you do not need the space immediate, you can wait until next reboot instaed of manually deleting. Also according to our design, there is only one DnD allowed at any time, and this has been fixed and will be in next release. You will not see any messed display. Right now we did not get any bug as you described in the first post, but we will try to reproduce it and fix.

0 Kudos
admin
Immortal
Immortal

I think I understand your architecture after observing it. You have a back channel through which the files are copied from the host into the guest's DnD folder. The host only cares the target is the VMware app, and the file is handed off like dragging to any other app. The Vmware app takes that data and shoves it into the DnD folder using the VMware tools (I'm guessing SFTP based on listening ports in the guest). The drop to the target location in the guest is actually just handled by Explorer, which is given the file in the DnD folder as the source. Explorer knows where I was pointing and it handles the move from the DnD temp dir to the actual end target. The problem arises when the target is a different drive, in which case Explorer defaults to a copy rather than a move. Holding the proper key in Windows will always force a move, so perhaps there is some way you could trigger that mechanism automatically for the DnD operation so that the file gets moved rather than copied on its own. I did discover it because I was extracting a giant archive from one drive to the other and ran out of free space due to the lingering copy of the archive in the DnD folder.

Ideally, there could be a DnD folder on each drive in the guest. This would remove the need for the force move hack. It would also remove the expensive copying of the data from one virtual disk to another. However, this would require knowledge of the target drive by the VMware tools, which would be additional (possibly non-trivial) development.

0 Kudos