by Mofi » Wed Jun 04, 2008 3:05 am
Well, relative paths are always problematic because there is always the question: Relative to which base directory - the program directory, the start in directory, the current working directory, a directory specified by an environment variable, the directory of the INI?
The solution would be very easy if Windows file systems would work with volume names instead of drive letters as many file systems on other operating systems do. On my very old Amiga 500 and Amiga 2000 I don't have such problems because I simply specify "volume name:directory/file name" and that's it.
However, maybe there is a workaround using UNC paths. On the stick create a directory where you want store files which are user specific like the auto-complete file. Next right click on that directory, select "Sharing and Security", select "Share this folder" and specify that everyone can read (and maybe also write) without a password required from/into this shared directory. Select also an appropriate caching option. Now specify in UE3 the auto-complete file using the UNC path like \\localhost\sharename\auto-complete_file.txt I hope this workaround works because I have not tested if anything written here is really possible. I don't know where the sharing information is saved. If it is saved in the registry of the current computer, then this method will not work. If it is saved on the drive itself, it could work.
A second workaround would be to have always the same drive letter for your stick. That can be reached by a batch file on your stick which has for example following lines:
@echo off
set /P StickDrive="Drive letter of the stick is: "
subst B: %StickDrive%:\
That uses good old DOS command to substitute drive B to the drive letter your stick has got.
(And don't ask me why Microsoft has not come to the idea to automatically assign an USB drive first to letter B if this letter is not already used by a drive. Interesting is that it is possible to assign permanently a stick to letter B for example, so when you next time plug-in the same stick on the same computer it will be assigned again to letter B. But Windows remembers such drive mapping on a per stick base and not as general mapping for all USB sticks. And what many users don't know is that Windows takes only the local drives into consideration when assigning automatically a drive letter to a stick volume. If you have for example the local drives C, D and E and drive F is a network drive, the stick will nevertheless get the drive letter F and therefore you can't access the files on the stick - wonderful!)
Maybe you can create an autorun.inf on your stick which executes that batch file to be automatically asked immediately after plugging-in the stick. Of course you will need a second batch file with just 1 line which you must execute before you unplug the stick to remove that substitution:
subst B: /D
The last possibility you have is to send a feature request email to IDM with the request for a place holder like %up which should be replaced by UE3 with the current program directory to be able to specify a path relative to the UE3 program directory or something similar.