Per determinare il percorso canonico di un file specificato dal percorso relativo o un percorso contenente \..\
nel mezzo, StackOverflow suggerisce di utilizzare GetFullPathName()
here o GetLongPathName()
here.Qual è la differenza tra GetLongPathName e GetFullPathName in WinAPI?
Qual è la differenza tra queste funzioni?
L'intento è quello di ottenere i percorsi che iniziano con la lettera di unità da percorsi relativi (come ..\someDir\someFile.txt
e someOtherDir\someFile.txt
) e per eliminare più \..\
dai percorsi (come C:\dirA\dirB\..\someFile.txt
->C:\dirA\someFile.txt
).
Hai provato a leggere i riferimenti per es. ['GetFullPathName'] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364963%28v=vs.85%29.aspx) e [' GetLongPathName'] (https: // msdn .microsoft.com/en-us/library/windows/desktop/aa364980% 28v = vs.85% 29.aspx)? –
@JoachimPileborg, si. Hai? Non è facile cogliere la differenza in modo affidabile leggendo i riferimenti. Ho pensato che sarebbe stato più facile spiegare per qualcuno che ha esperienza con entrambi. Il problema era con ad es. PathCanonicalize non quasi canonicalizing il percorso, tuttavia il suo nome dice così. Solo in Debug l'ho capito, quindi ho letto nuovamente il riferimento e ho capito dove è documentato lo strano comportamento di PathCanonicalize. –
Ho trascorso alcuni minuti a quei riferimenti e la mia fiducia è caduta solo sul fatto che potrei autorevolmente spiegare la differenza. Non vedo l'ora di imparare la risposta. –