February 13, 2013 60 Comments
[UPDATE: A new release with version number 1.2.1 is available http://ssx.codeplex.com/releases/view/101941]
The first release of SkyShellEx was an attempt to add on a sorely missed feature in the SkyDrive desktop app for Windows. The ability to sync any folder on your disk to the cloud was one main differentiator of Live Mesh (R.I.P. 13th Feb 2013) over competitors like DropBox or GDrive. When I was quickly putting together a shell extension that could create folder junction in NTFS, I was hoping it would help out a few people. However, I was surprised by the traffic and feedback I got for my little hack. Thanks everybody for your nice comments and appreciation! Realizing that there is high demand for keeping existing folders structures intact but still taking advantage of cloud storage, I decided to implement a successor that eliminates issues of the old version and adds few new features. The result of this work , SkyShellEx 1.2, is now available at http://ssx.codeplex.com/ Grab the bits as long as they are fresh. I also would like to give a special Thanks to my old friend and awesome developer Danny Tomuschat. This release of SkyShellEx wouldn’t have been possible without his work.
[DISCALIMER: SkyShellEx, whether in the form of source code or executable, is provided As Is. There is no warranty that the software is appropriate for any specific use. While it is believed to be correct, there is no guarantee that the code does not contain either general errors or errors that my occur under specific combination of parameters or use. The practice of keeping regular backups of your data is strongly recommended.]
We will move your data and why it’s better
While the original SkyShellEx had only little impact on your file structure, the new version will actually migrate your data into SkyDrive. However, like in the old version, your folder structure will be maintained. Only this time, the folder junction will be created as a surrogate at the original folder location. If moving your data is a big no-no for you then you have three options right now. First, you can stick with the old version of SkyShellEx and live with its shortcomings. Second, you keep reading and hopefully I can convince you why it’s better this way. Third, you can try to convince me to bring it back the old way as an option for a future version.
Syncing actually works now
Folder junctions created in the SkyDrive folder do sync when the junction is created. However, a lot of users, including me, reported that changes in the folder were not synced by SkyDrive. The only workaround was to restart SkyDrive or to create and delete a dummy file somewhere in SkyDrive in order to trigger a sync. Moving the actual folder into SkyDrive will circumvent this kind of issues. Your files will be always fresh and up to date.
Enabling Device to Device Sync
Having real folders in SkyDrive also enables a scenario that wasn’t easily possible with folder junction. Let’s assume you have two or more PC’s and you want to sync your Music folder across all PC’s. While you could create the folder junction in SkyDrive for the first PC, you couldn’t do the same on any of the other PC’s. The junction just couldn’t be created because the folder Music already existed in SkyDrive. Now you have the possibility to exactly do this. Just to be clear this is NOT the peer to peer sync you know from Live Mesh. The sync always happens via the SkyDrive folder in the cloud. You have the choice to merge folders from different PC’s or to sync them side by side. More details below.
How it works
Since you still reading and not deterred by the fact that SkyShellEx moves your data around, lets talk about new features. Once installed, this release of SkyShellEx works in principle the same way as the previous one. Just right click on any folder on your disk and you will see a new context menu entry called Sync to SkyDrive. Well, actually not for any folder. We are actively preventing syncs of folders that live under Windows, System or Programs as well as folder from removable storage. If you can give me a good reason to allow you to mess with your system files then let me know. SkyShellEx is using a new icon with the right dimensions now.
If you click on the menu item “Sync to SkyDrive” and the selected folder doesn’t exist in SkyDrive then the folder will be silently moved and a surrogate folder in form of an folder junction will be placed at the original location. In case SkyDrive already contains a folder with the same name, we support two scenarios that will be handled by the following dialog.
In the first scenario “Merged folders” we assume that the folder is synced by SkyDrive from another PC and you want to sync the same folder with the current PC. If you select this option, your existing folder will be merged and again, the original folder will be replaced by a folder junction. The second scenario “Side by side” covers two cases. Like in the first scenario it could be a folder from another device, but this time you would rather have two versions of the same folder side by side. I In the subsequent dialog a new name with computer name as a suffix is suggested or you can choose your own name.
The second use case covers the possibility that two folder with he same name live in different places on your disk. If you currently already sync a folder on your computer with the same name then SkyShellEx will suggest a new name that includes the parent folder name as a prefix or you can choose your own name
Once a folder is synced via SkyShellEx, folder in SkyDrive as well as the junction gets a new icon. This allows you do identify more easily your synced folders. You will recognize that the new icon will show right away or not. Depending on the weather. moon phase or any other unrelated event, Explorer decides to show the icon sooner or later. If anybody knows how to force Explorer to always show the changed icon immediately then ping me. I will owe you.
In case you don’t want to sync your folder anymore and want your folder back as it was, just right click the folder or the junction and you will see a menu entry called “Stop syncing to SkyDrive”.
This will bring up a dialog that offers two options. The first one restores your folder at is original place but leaves a copy of your data in SkyDrive. This prevents that data get deleted from other machines that also sync the same folder. The second option also restores your original folder but removes it completely from SkyDrive. Be aware that the data wont be available for any other devices anymore.
Sharing folders was another missing feature in the original release of SkyDrive. Also it is available now and we providing kind of redundant functionality here, I’m not a big fan on how SkyDrive is implementing sharing. Just opening a browser window looks kind of cheap to me. Well, we also using the web UI but we tried do it in a more elegant way, so it feels integrated with the Desktop. If you do your first sync you will be asked to trust us and give SkyShellEx access to your SkyDrive. Actually we just need this permission to resolve the local folder name to the folder ID used by SkyDrive. If you don’t want to answer this question every time then don’t forget to set the check mark on the “Remember access for SkyShellEx” option.
Once the folder name is resolved, you will see the familiar sharing screen from SkyDrive with all it’s options. We tried our best to hook into all the HTML events, so the Web UI behaves like a native window. We also worked on our own sharing solution via the Live SDK but soon we realized that the exposed API is to limited compared to the Web UI.
That’s SkyShellEx 1.2 and I hope it will be useful you. Give us your feedback and bug reports on CodePlex http://ssx.codeplex.com/