>>>Is there any simpler way to get a real path of a file or folder, even if the path, to start from, contains unfortunately uppercased parts? Filesystem object doesn't even have such a function, it keeps the casing as was passed to it.
>>>
>>>The one way I know is to use the 3rd parameter to adir(), which means recursively checking each level of the path and then reassembling it. Not that I don't have the time to do it, now I have, and (even worse) I have a strong deja vu, I think I already wrote such a function once but can't remember what I called it...
>>>
>>>Still, is there a simpler way?
>>
>>FilesystemObject does not have a function but it has a property
>>
>>
>>local filename, fso, x
>>
>>filename = upper('D:\tmp\NBB\2021\structure_be-fr-pfs-ci-2021-01-01.pdf')
>>
>>fso = CreateObject("Scripting.FileSystemObject")
>>
>>x= m.fso.GetFile(m.filename)
>>?m.x.Path
>>
>>x = m.fso.Getfolder(justpath(m.filename))
>>?m.x.Path
>>
>
>Nope, tried that first. Assume you have a folder "Q:\Pictures", and try
>x = m.fso.Getfolder(justpath("q:\piCTUres"))
>
>x.Path will be q:\piCTUres. Which is exactly what I wanted to avoid. Here's the result of half an hour of fiddling:
>
> Function fPath(tcF)
> Function fPath(tcF)
>*[2022-01-04 14:45:18] ndragan - start with 2, assume no need to check the disk letter
> lcEndpath=Addbs(tcF)
> lnStart=2
> lcFajl=Left(lcEndpath, At("\", lcEndpath, 1))
> For i=lnStart To Occurs("\", lcEndpath)
> lcPartDir=Left(lcEndpath, At("\", lcEndpath, i)-1)
> If Adir(aa, lcPartDir, "DHS",1)=0
> lcFajl=""
> Exit
> Else
> lcFajl=Addbs(lcFajl)+aa[1]
> Endif
> Endfor
> Return lcFajl
>
Strange
The results are the same and correct, using both
upper('D:\tmp\NBB\2021\structure_be-fr-pfs-ci-2021-01-01.pdf')
and
lower('D:\tmp\NBB\2021\structure_be-fr-pfs-ci-2021-01-01.pdf')
Gregory