function TOSFile.DeletePrefix(const PrefixToDelete: String): String; var PathToDeletePrefix: String; begin PathToDeletePrefix := GetPathOfFileAccessing; result := Copy(PathToDeletePrefix, Length(PrefixToDelete) + 1, Length(PathToDeletePrefix) - Length(PrefixToDelete)); end; function TOSFile.IsPathOfFileAccessingHavePrefix( const PrefixToCheck: String): Boolean; begin result := Copy(GetPathOfFileAccessing, 0, Length(PrefixToCheck)) = PrefixToCheck; end; function TOSFile.GetPathOfFileAccessingWithoutPrefix: String; begin if IsPathOfFileAccessingHavePrefix( ThisComputerPrefix + PhysicalDrivePrefix) then exit(DeletePrefix(ThisComputerPrefix + PhysicalDrivePrefix)) else if IsPathOfFileAccessingHavePrefix(ThisComputerPrefix) then exit(DeletePrefix(ThisComputerPrefix)) else exit(GetPathOfFileAccessing); end;