On Sat, Oct 04, 2008 at 06:16:01PM +0200, Peter Kümmel wrote: >> But you state: >> >> [...]fails due to different names of the same directory (prefixIs is string >> based): >> >> C:/Dokumente und Einstellungen/cdev/Lokale Einstellungen/Temp/lyx_tmpbuf0/ >> C:/DOKUME~1/cdev/LOKALE~1/Temp >> >> Having several names for the same file or directory is not a Windows-only >> problem but rather common on *nix systems where there might be symlinks >> or mounts "distorting" the filesystem tree. Of course, finding (or >> keeping track of) a canonical representation is not necessarilty >> trivial and I'd consider it rather an 'application space' task, not a > > > Yes, it's similar to a symlink. > Then canonicalPath() should return the long path name. > >> library thing. Why do we end up with two representations anyway? > > Also wondering why the other pathname is the long one, I found > os::internal_path() which alreday converts to the long path name. > Seems it WAS a well known problem: > http://www.lyx.org/trac/changeset/10501 (commit by Angus) > > I use this function now in tempPath().
Ok - modulo Abdel's 8bit question. Incidentally, I tend to use canonical[File]Path() only for comparisons, not for storing file names. More often than not one needs the original version, e.g. for storing in preferences or such. Andre'