SkyDrive

From Andrew M, a power user in Windows, who got Task Timer working with SkyDrive so he could access it from multiple computers without having to synchronize to an intermediate database or iOS device.

To make Task Timer work with SkyDrive – allowing synced data for multi-location access to the data files, copy the data files and subfolders of the default storage location to a folder managed by SkyDrive.

SkyDrive actually has a directory under “C:\Users\username\SkyDrive\” where files stored in this location are synced to the SkyDrive web storage system. As it sees changes to files and folders within this local user folder, the changes are synced to the web automatically.

Other computers, setup to use the SkyDrive application with the same user account, are then synced from the web automatically. So basically, so long as a file is only open at one location at a time, the file syncing works fine.

Since the actual Task Timer database is stored in a file(s) and the files are stored on the local drive, it should work fine moving the files to a SkyDrive folder, which is also a local drive folder.

However, Task Timer has its data path hard coded so a simple setting change cannot tell Task Timer to look for the data files in another location.

To get around this, with Windows Vista and above, a Symbolic Link can be setup to get around this issue by creating a link from the default data path to the actual data location in the SkyDrive folder structure.

It may be possible to use a junction point or a hard link with Windows 2000 forward, but I did not test this due to my understanding of these types of links introducing potential problems that the Symlink process did not seem to have (although but I may be wrong).

Assuming that SkyDrive and Task Timer are already installed and configured properly…

Create a folder structure under SkyDrive as: “\Projects\Task Timer Data Files\” where I will keep the actual Task Timer data files and where my Windows UserName is ‘testuser’. Then:

1. Make sure that Task Timer is shut down.

2. Open an Administrative Command Prompt (a command prompt window opened with Administrator Privileges):

    Using Windows 7, click on Start, enter cmd in the Search text box, then hit Shift-CTRL-Enter

3. Change directories to “C:\Users\testuser\AppData\Roaming\Task Timer\”:

    cd “C:\Users\testuser\AppData\Roaming\Task Timer”

4. Copy the data files from the default location of: “C:\Users\testuser\AppData\Roaming\Task Timer\” to “C:\Users\testuser\SkyDrive\Projects\Task Timer Data Files\”:

    xcopy *.* “C:\Users\testuser\SkyDrive\Projects\Task Timer Data Files\*.*” /E

5. Change directories to “C:\Users\testuser\AppData\Roaming\”, one level below the default “Task Timer” folder:

    cd..

6. Rename the “Task Timer” folder to “Task Timer OLD” – so the original files are saved in case anything goes wrong:

    ren “Task Timer” “Task Timer OLD”

7. Create the Symbolic Link using the mklink command. From the “C:\Users\testuser\AppData\Roaming\” directory enter:

    mklink /d “Task Timer” “C:\Users\testuser\SkyDrive\Projects\Task Timer Data Files\”

This creates a Symbolic Link called “Task Timer” in the default “C:\Users\testuser\AppData\Roaming\” directory, thus effectively re-creating the original path of “C:\Users\testuser\AppData\Roaming\Task Timer”; which is actually pointing to the “C:\Users\testuser\SkyDrive\Projects\Task Timer Data Files\” folder; which is now the actual file location; and which is a folder synced with SkyDrive.

Follow the same steps above on another computer with SkyDrive and Task Timer installed – EXCEPT FOR STEP 4!!! (Assuming the first computer has the Task Timer data files you actually want to be using).  

On each of the other computers, they need to adjust the username (‘testuser’ in my steps) in the paths to the SkyDrive and Task Timer folders to replace the Windows username they are using on that computer. It happens that on the two computers I was using, that the Windows username was the same on both systems, but most others will probably have different Windows usernames on the different computers they are using.

Make sure to only have Task Timer open on one computer at a time and this should allow access to the same Task Timer data from multiple locations.