Accessing Igor Pro User Files path in Dropbox

I have my User Procedures folder on Dropbox (234.4.5591) to share the files between my personal and work laptops, which run on Windows 11. On both machines, in Igor Pro 9.0.5.1, I set the Igor Pro User Files path to the appropriate Dropbox folder with the Misc>Igor Pro User Files>Change Path dialog. 

On the personal laptop, this is C:\Users\Jack\Dropbox\Research\WaveMetrics\Igor Pro 9 User Files

On the work laptop, this is C:\Users\Jack5\Dropbox\Research\WaveMetrics\Igor Pro 9 User Files

On the personal laptop (which is the one where I originally moved the WaveMetrics folder into the Dropbox folder), this works fine. On the work laptop, whenever I open an experiment with user procedures, I receive a Missing File dialog box that says

Error loading procedure file: myprocfile.ipf

    Error: the file or folder could not be found

The file may be needed to run the experiment

Do you want to look for the file?

When I click "Look for file" it opens the appropriate Igor Pro 9 User Files folder in Dropbox containing the User Procedures folder with the desired .ipf file. For some reason, Igor is not able to find the file on its own.

Things I have tried:

I read the help topic article

DisplayHelpTopic "Special Folders"

I followed hrodstein's suggestion in https://www.wavemetrics.com/forum/general/igor-8-doesnt-load-procedures… to

Try renaming "Igor Pro 8 User Files" as "Igor Pro 8 User Files - Old". Then restart Igor. It should create a new "Igor Pro 8 User Files" folder. Move your files from "Igor Pro 8 User Files - Old" to "Igor Pro 8 User Files". Then restart Igor again.

This did not resolve the issue.

I tried to find a similar solution to that commented by hpscott in https://www.wavemetrics.com/forum/general/ip9-include-and-aliases who had a similar problem but with OneDrive on a Mac. Their solution was to grant Igor Pro access to OneDrive in Settings -> Privacy & Security. However, I couldn't figure out how to do this in Windows for Dropbox. 

I followed aclight's suggestion in https://www.wavemetrics.com/forum/general/igor-8-doesnt-load-procedures… to

1. Start Igor Pro

2. Hold the shift key and select the Help->System Information menu item.

In the copied text, I confirmed that the User Procedures folder and .ipf files are indeed listed in the System Information output, suggesting that Igor Pro does have access to these directories.

Hmm... You did not mention how you load the procedures into the experiment. Do you drag and drop (or otherwise open) the file in the respective experiment or do you use an #include statement in the main procedure window? If you are using the former method, then you are doing it 'wrong'. I am asking because the error you posted seems like you are loading procedures as a file, and Igor cannot find the file on the other PC because the path structure is slightly different. Read more here about the include method:

DisplayHelpTopic "The Include Statement"

 

I am guessing that Dropbox has a setting where it only transfers a file to your local machine when you try to access it (versus always synchronizing the contents of the files before you try to read them). If you have such a setting enabled (it may be the default behavior), then your work machine probably only has a list of files that are in the cloud, but not the actual files themselves. It may be that the way Igor tries to satisfy include files doesn't work as expected when the actual files are not on your local machine.

I've never used Dropbox so I can't provide further advice about what this setting is called or how to control it. I know that Google Drive, which I do use, has this kind of setting.

I have had multiple reports of this type of setup failing from users of my packages. Network drives are bad for Igor home folders since the files are not available when Igor asks - their links are available, but even if locally available, the files need to be checked if they are the latest version and redownloaded if needed. Or they are just links pointing to cloud. Igor is not patient enough to give system time to reload the files as needed and gives up... 

Even worse, if users run Installer Igor experiment for my packages, and that copies the files in the network drive, on subsequent read the files may not be available for Igor to load as they are "somewhere" in cloud of cache, being uploaded to cloud, RAM,... simply not where you want them. This was observed on home folders of students at universities (typically Microsoft or Google) and at large companies, but I see not reason why Dropbox should be significantly different.

The only reliable solution I know is to make sure your Wavemetrics User procedures are on local, fast & reliable, drive. 

In my case I use Subversion to sync my home folder content among number of computers. It requires manual syncing, but it also provides backup and option to restore when I make mistake. There are other options I can imagine.   

I am sure you can setup Dropbox to keep local copy of all files you need, but it is not clear if that is good enough. I do not think so, but did not spend enough time to test. I would actually like to know if you have find a solution eventually.

 

I will echo the warning comments here. Using a cloud storage to "share" procedure files for Igor Pro is bound to be fraught with issues, resolving them is bound to require diligence on multiple fronts, and no one solution to using the cloud as you suggest can be guaranteed to work every time, all the time.

Perhaps the question is answered by looking at the reason behind why you take the approach you outline. Why are you storing your Users Procedures folder in a cloud? It seems that you are doing this because you have a self-built procedure file that you edit on one machine and that you wish to use later on the other machine. Why not resolve this need simply by copying the updated procedure file to a USB stick and pasting it on to the other machine? Or, as needed, create a transfer cloud folder (for example called the equivalent of Igor Pro XFER) to use as a cloud-based USB stick. When you are done making edits to your procedure file on one machine, transfer the most recent copy of it to the cloud transfer folder. When you are on your other machine, pick up the most recent copy from the cloud transfer folder to replace it into the appropriate file in the local folder on the other machine.

The use case is a bit different and we use Mac rather than Windows, but it is possible to use Dropbox to deploy Igor code between users, and it should work to deploy code with yourself.

https://github.com/quantixed/IgorDistro/

The comments above are all true: the computer needs to sync to Dropbox properly. But i'm sure the default is for it to update more or less immediately after a change.