I've virtualized a file compression utility using Cameyo v2.7.1291, and one of the options in this particular program is the ability to recycle a source file after successfully compressing it.
Unfortunately when using the Cameyo packaged app, any files that are recycled by the software the end up in the virtual file system's copy of the Recycle Bin. So I edited the package as follows:
Added empty folder C_ (Isolated)
Added empty subfolder $Recycle.Bin (Full Access)
Now the recycled files get sent to the correct location (C:\$Recycle.Bin\S-1-5-21-2080171965-3741311417-1974148064-500) but the OS doesn't recognise them as being in the Recycle Bin. However if I browse the recycle bin from a 'File Open' dialog box within the virtual app, I can see the recycled files, so this would suggest that there are registry entries pertaining to the Recycle Bin that are currently virtualised that need to be made fully accessible - is this correct? What do I need to change in the app package to get this working?
The software is Monkey's Audio (a lossless compressor for wav files), and the direct download link is here: http://monkeysaudio.com/files/MAC_416.exe
If you want to take a look, the option to send source files to the recycle bin after compressing can be enabled by going to Tools...Options...Output... and changing "Leave source file intact" to "Recycle source file"
Thanks!
-- Edited by gjcdeluxe on Thursday 18th of June 2015 09:47:28 PM
Please try giving Full access to source file location.
In other words, if the source file is in %Desktop%\subfolder, and the package sees this location as Isolated, it cannot delete the file from the host system.
OK I checked the package and the isolation setting is set to Data mode. Since the source file location was within the Documents folder, that should be just the same as explicitly giving full access to that location shouldn't it?
The program has no problem performing a hard-delete on the source file, if that option is activated instead, it's only when it is set to recycle files that it fails, so I thought the problem was arising from the inability to write to the Recycle Bin, or some registry entry pertaining to the Recycle Bin's contents.
Update: It seems to be having trouble specifically with my Documents folder. If the source file is on the desktop, everything behaves as normal, but My Documents is a junction which points to D: (a separate physical drive). Adding D_ with full access seems to (sort of) solve it. Source files get recycled by the packaged app, provided the path of the source file is C:\Documents (the junction point), but if the path of the source file is D: (the true location, which has full access granted), I get errors about the file not existing at that location.
Have you tried -Remove parameter and testing package after Success message? -Remove will delete the repository, returning the package to the state before it was run.
What OS and architecture are you using for this package, e.g. Win7 SP1 x64?
I'm running Win7 x64 (no service pack), and I did do -remove after any edits I made to the package but the problem with being unable to find files on D drive persisted. It works properly on C drive and via the junction reparse point to D drive (which would be my preferred method anyway), so that's usable enough. I'll be packaging a few more apps shortly so I'll let you know if I encounter this kind of problem with any of those.