?DiskFileName('C:\Whatever\Folder\or\Filename\) *--------------------------------------------------------------------------- #Define MAX_PATH 260 function DiskFilename(FileName) declare Integer FindFirstFile in win32api string @, String @ declare Integer FindNextFile in win32api Integer, String @ declare Integer FindClose in win32api Integer do case case ( right(FileName,1) == '\' ) return addbs(DiskFilename(left(FileName, len(Filename)-1))) case empty(FileName) return '' case ( len(FileName) == 2 ) and ( right(FileName,1) == ':' ) return Filename && win2k gives curdir() for C: endcase local Handle, FindFileData, xxx FindFileData = space(4+8+8+8+4+4+4+4+MAX_PATH+14) Handle = FindFirstFile(@FileName, @FindFileData) if( Handle < 0 ) if( !empty(JustFname(Filename)) ) xxx = JustFname(Filename) else xxx = FileName endif else =FindClose(Handle) xxx = substr(FindFileData, 45, MAX_PATH) xxx = left(xxx, at(chr(0), xxx)-1) endif do case case empty(justpath(FileName)) return xxx case ( justpath(FileName) == '\' ) and (left(FileName,2) == '\\') && unc return '\\' + xxx otherwise return addbs(DiskFilename(JustPath(FileName))) + xxx endcase endfunc *--------------------------------------------------------------------------