bpy.path.abspath is appears to be messing up I am working on an addon and I have a StringProperty that is a File_Path, you select the file and it reads the xml at the location. These string property's automatically use relative paths, so my code is if "//" is in the path it automatically uses bpy.path.abspath on it to convert to an absolute path, but it dosesn't seem to be working right.

The .blend is in D:\Pictures\3D Models\Models\file.blend
The file selected is at D:\Pictures\main_car\file.xml
The output from the StringProperty is //..\..\main_car\file.xml

When this output is converted using bpy.path.abspath it becomes:
D:\Pictures\3D Models\Models\..\..\main_car\file.xml
not where the file actually is. It is like it isn't backing up far enough before it goes into the main_car folder
As someonewithpc said, .. means one directory up. Thus,

D:\Pictures\3D Models\Models\..\..\main_car\file.xml


is the same directory as

D:\Pictures\main_car\file.xml


although the path is overly complicated (not cleaned up).

You can shorten it by realpath() or abspath() from os.path:

import bpy
import os
os.path.realpath(bpy.path.abspath(your_path))