if (path.startsWithChar (separator)) { if (path[1] != separator) { /* When you supply a raw string to the File object constructor, it must be an absolute path. If you're trying to parse a string that may be either a relative path or an absolute path, you MUST provide a context against which the partial path can be evaluated - you can do this by simply using File::getChildFile() instead of the File constructor. E.g. saying "File::getCurrentWorkingDirectory().getChildFile (myUnknownPath)" would return an absolute path if that's what was supplied, or would evaluate a partial path relative to the CWD. */ jassertfalse; path = File::getCurrentWorkingDirectory().getFullPathName().substring (0, 2) + path; [..]
Jules - to save anyone as stupid as me some pain. It might be worth adding in here that the two \ characters you get in the watch list:
+ path {text={data=0x04f46988 "\\Users\\jim\\Code\\credland-1331-kick\\Resources\\gui.xml" } } juce::String
Are bloody escape characters, and only path[0] = \ ... path[1] is in fact a U.
Who decided \ was a good path separator anyway... :)