# -*- coding: utf-8 -*-
"""Windows known folders helper."""
[docs]class WindowsKnownFoldersHelper(object):
"""Windows known folders helper."""
# pylint: disable=line-too-long
_PATH_PER_GUID = {
'{008ca0b1-55b4-4c56-b8a8-4de4b299d3be}': '{%APPDATA%\\Microsoft\\Windows\\AccountPictures',
'{00bcfc5a-ed94-4e48-96a1-3f6217f21990}': '{%LOCALAPPDATA%\\Microsoft\\Windows\\RoamingTiles',
'{0139d44e-6afe-49f2-8690-3dafcae6ffb8}': '{%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs',
'{0482af6c-08f1-4c34-8c90-e17ec98b1e17}': '%PUBLIC%\\AccountPictures',
'{054fae61-4dd8-4787-80b6-090220c4b700}': '{%LOCALAPPDATA%\\Microsoft\\Windows\\GameExplorer',
'{0762d272-c50a-4bb0-a382-697dcd729b80}': '%SYSTEMDRIVE%\\Users',
'{0d4c3db6-03a3-462f-a0e6-08924c41b5d4}': '{%LOCALAPPDATA%\\Microsoft\\Windows\\ConnectedSearch\\History',
'{15ca69b3-30ee-49c1-ace1-6b5ec372afb5}': '{%PUBLIC%\\Music\\Sample Playlists',
'{1777f761-68ad-4d8a-87bd-30b759fa33dd}': '%USERPROFILE%\\Favorites',
'{18989b1d-99b5-455b-841c-ab7c74e4ddfc}': '%USERPROFILE%\\Videos',
'{1a6fdba2-f42d-4358-a798-b74d745926c5}': '%PUBLIC%\\RecordedTV.library-ms',
'{1ac14e77-02e7-4e5d-b744-2eb1ae5198b7}': '%WINDIR%\\System32',
'{1b3ea5dc-b587-4786-b4ef-bd1dc332aeae}': '{%APPDATA%\\Microsoft\\Windows\\Libraries',
'{2112ab0a-c86a-4ffe-a368-0de96e47012e}': '{%APPDATA%\\Microsoft\\Windows\\Libraries\\Music.library-ms',
'{2400183a-6185-49fb-a2d8-4a392a602ba3}': '%PUBLIC%\\Videos',
'{24d89e24-2f19-4534-9dde-6a6671fbb8fe}': '{%USERPROFILE%\\OneDrive\\Documents',
'{2a00375e-224c-49de-b8d1-440df7ef3ddc}': '%WINDIR%\\resources\\%CODEPAGE%',
'{2b0f765d-c0e9-4171-908e-08a611b84ff6}': '{%APPDATA%\\Microsoft\\Windows\\Cookies',
'{2c36c0aa-5812-4b87-bfd0-4cd0dfb19b39}': '{%LOCALAPPDATA%\\Microsoft\\Windows Photo Gallery\\Original Images',
'{3214fab5-9757-4298-bb61-92a9deaa44ff}': '%PUBLIC%\\Music',
'{339719b5-8c47-4894-94c2-d8f77add44a6}': '{%USERPROFILE%\\OneDrive\\Pictures',
'{33e28130-4e1e-4676-835a-98395c3bc3bb}': '%USERPROFILE%\\Pictures',
'{352481e8-33be-4251-ba85-6007caedcf9d}': '{%LOCALAPPDATA%\\Microsoft\\Windows\\Temporary Internet Files',
'{374de290-123f-4565-9164-39c4925e467b}': '%USERPROFILE%\\Downloads',
'{3d644c9b-1fb8-4f30-9b45-f670235f79c0}': '%PUBLIC%\\Downloads',
'{3eb685db-65f9-4cf6-a03a-e3ef65729f3d}': '%USERPROFILE%\\AppData\\Roaming',
'{48daf80b-e6cf-4f4e-b800-0e69d84ee384}': '{%ALLUSERSPROFILE%\\Microsoft\\Windows\\Libraries',
'{491e922f-5643-4af4-a7eb-4e7a138d8174}': '{%APPDATA%\\Microsoft\\Windows\\Libraries\\Videos.library-ms',
'{4bd8d571-6d19-48d3-be97-422220080e43}': '%USERPROFILE%\\Music',
'{4c5c32ff-bb9d-43b0-b5b4-2d72e54eaaa4}': '%USERPROFILE%\\Saved Games',
'{52a4f021-7b75-48a9-9f6b-4b87a210bc8f}': '{%APPDATA%\\Microsoft\\Internet Explorer\\Quick Launch',
'{5cd7aee2-2219-4a67-b85d-6c9ce15660cb}': '%LOCALAPPDATA%\\Programs',
'{5ce4a5e9-e4eb-479d-b89f-130c02886155}': '{%ALLUSERSPROFILE%\\Microsoft\\Windows\\DeviceMetadataStore',
'{5e6c858f-0e22-4760-9afe-ea3317b67173}': '{%SYSTEMDRIVE%\\Users\\%USERNAME%',
'{625b53c3-ab48-4ec1-ba1f-a1ef4146fc19}': '{%APPDATA%\\Microsoft\\Windows\\Start Menu',
'{62ab5d82-fdc1-4dc3-a9dd-070d1d495d97}': '%SYSTEMDRIVE%\\ProgramData',
'{6365d5a7-0f0d-45e5-87f6-0da56b6a4f7d}': '%PROGRAMFILES%\\Common Files',
'{69d2cf90-fc33-4fb7-9a0c-ebb0f0fcb43c}': '{%USERPROFILE%\\Pictures\\Slide Shows',
'{6d809377-6af0-444b-8957-a3773f02200e}': '%SYSTEMDRIVE%\\Program Files',
'{724ef170-a42d-4fef-9f26-b60e846fba4f}': '{%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools',
'{767e6811-49cb-4273-87c2-20f355e1085b}': '%USERPROFILE%\\OneDrive\\Pictures\\Camera Roll',
'{7b0db17d-9cd2-4a93-9733-46cc89022e7c}': '%APPDATA%\\Microsoft\\Windows\\Libraries\\Documents.library-ms',
'{7b396e54-9ec5-4300-be0a-2482ebae1a26}': '%PROGRAMFILES%\\Windows Sidebar\\Gadgets',
'{7c5a40ef-a0fb-4bfc-874a-c0f2e0b9fa8e}': '%PROGRAMFILES% (%SYSTEMDRIVE%\\Program Files)',
'{7d1d3a04-debb-4115-95cf-2f29da2920da}': '%USERPROFILE%\\Searches',
'{7e636bfe-dfa9-4d5e-b456-d7b39851d8a9}': '%LOCALAPPDATA%\\Microsoft\\Windows\\ConnectedSearch\\Templates',
'{82a5ea35-d9cd-47c5-9629-e15d2f714e6e}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp',
'{859ead94-2e85-48ad-a71a-0969cb56a6cd}': '%PUBLIC%\\Videos\\Sample Videos',
'{8983036c-27c0-404b-8f08-102d10dcfd74}': '%APPDATA%\\Microsoft\\Windows\\SendTo',
'{8ad10c31-2adb-4296-a8f7-e4701232c972}': '%WINDIR%\\Resources',
'{905e63b6-c1bf-494e-b29c-65b732d3d21a}': '%SYSTEMDRIVE%\\Program Files',
'{9274bd8d-cfd1-41c3-b35e-b13f55a758f4}': '%APPDATA%\\Microsoft\\Windows\\Printer Shortcuts',
'{9e3995ab-1f9c-4f13-b827-48b24b6c7174}': '%APPDATA%\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned',
'{9e52ab10-f80d-49df-acb8-4330f5687855}': '%LOCALAPPDATA%\\Microsoft\\Windows\\Burn\\Burn',
'{a3918781-e5f2-4890-b3d9-a7e54332328c}': '%LOCALAPPDATA%\\Microsoft\\Windows\\Application Shortcuts',
'{a4115719-d62e-491d-aa7c-e74b8be3b067}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu',
'{a520a1a4-1780-4ff6-bd18-167343c5af16}': '%USERPROFILE%\\AppData\\LocalLow',
'{a52bba46-e9e1-435f-b3d9-28daa648c0f6}': '%USERPROFILE%\\OneDrive',
'{a63293e8-664e-48db-a079-df759e0509f7}': '%APPDATA%\\Microsoft\\Windows\\Templates',
'{a75d362e-50fc-4fb7-ac2c-a8beaa314493}': '%LOCALAPPDATA%\\Microsoft\\Windows Sidebar\\Gadgets',
'{a77f5d77-2e2b-44c3-a6a2-aba601054a51}': '%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs',
'{a990ae9f-a03b-4e80-94bc-9912d7504104}': '%APPDATA%\\Microsoft\\Windows\\Libraries\\Pictures.library-ms',
'{aaa8d5a5-f1d6-4259-baa8-78e7ef60835e}': '%LOCALAPPDATA%\\Microsoft\\Windows\\RoamedTileImages',
'{ab5fb87b-7ce2-4f83-915d-550846c9537b}': '%USERPROFILE%\\Pictures\\Camera Roll',
'{ae50c081-ebd2-438a-8655-8a092e34987a}': '%APPDATA%\\Microsoft\\Windows\\Recent',
'{b250c668-f57d-4ee1-a63c-290ee7d1aa1f}': '%PUBLIC%\\Music\\Sample Music',
'{b4bfcc3a-db2c-424c-b029-7fe99a87c641}': '%USERPROFILE%\\Desktop',
'{b6ebfb86-6907-413c-9af7-4fc2abf07cc5}': '%PUBLIC%\\Pictures',
'{b7bede81-df94-4682-a7d8-57a52620b86f}': '%USERPROFILE%\\Pictures\\Screenshots',
'{b94237e7-57ac-4347-9151-b08c6c32d1f7}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\Templates',
'{b97d20bb-f46a-4c97-ba10-5e3608430854}': '%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp',
'{bcb5256f-79f6-4cee-b725-dc34e402fd46}': '%APPDATA%\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\ImplicitAppShortcuts',
'{bcbd3057-ca5c-4622-b42d-bc56db0ae516}': '%LOCALAPPDATA%\\Programs\\Common',
'{bfb9d5e0-c6a9-404c-b2b2-ae6db6af4968}': '%USERPROFILE%\\Links',
'{c1bae2d0-10df-4334-bedd-7aa20b227a9d}': '%ALLUSERSPROFILE%\\OEM Links',
'{c4900540-2379-4c75-844b-64e6faf8716b}': '%PUBLIC%\\Pictures\\Sample Pictures',
'{c4aa340d-f20f-4863-afef-f87ef2e6ba25}': '%PUBLIC%\\Desktop',
'{c5abbf53-e17f-4121-8900-86626fc2c973}': '%APPDATA%\\Microsoft\\Windows\\Network Shortcuts',
'{c870044b-f49e-4126-a9c3-b52a1ff411e8}': '%LOCALAPPDATA%\\Microsoft\\Windows\\Ringtones',
'{d0384e7d-bac3-4797-8f14-cba229b392b5}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools',
'{d65231b0-b2f1-4857-a4ce-a8e7c6ea7d27}': '%WINDIR%\\system32',
'{d9dc8a3b-b784-432e-a781-5a1130a75963}': '%LOCALAPPDATA%\\Microsoft\\Windows\\History',
'{de92c1c7-837f-4f69-a3bb-86e631204a23}': '%USERPROFILE%\\Music\\Playlists',
'{de974d24-d9c6-4d3e-bf91-f4455120b917}': '%PROGRAMFILES%\\Common Files',
'{debf2536-e1a8-4c59-b6a2-414586476aea}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\GameExplorer',
'{dfdf76a2-c82a-4d63-906a-5644ac457385}': '%SYSTEMDRIVE%\\Users\\Public',
'{e555ab60-153b-4d17-9f04-a5fe99fc15ec}': '%ALLUSERSPROFILE%\\Microsoft\\Windows\\Ringtones',
'{ed4824af-dce4-45a8-81e2-fc7965083634}': '%PUBLIC%\\Documents',
'{f1b32785-6fba-4fcf-9d55-7b8e7f157091}': '%USERPROFILE%\\AppData\\Local',
'{f38bf404-1d43-42f2-9305-67de0b28fc23}': '%WINDIR%',
'{f7f1ed05-9f6d-47a2-aaae-29d317c6f066}': '%PROGRAMFILES%\\Common Files',
'{fd228cb7-ae11-4ae3-864c-16f3910ab8fe}': '%WINDIR%\\Fonts',
'{fdd39ad0-238f-46af-adb4-6c85480369c7}': '%USERPROFILE%\\Documents'}
# pylint: enable=line-too-long
[docs] @classmethod
def GetPath(cls, known_folder_identifier):
"""Retrieves the path for a specific known folder identifier.
Args:
known_folder_identifier (str): known folder identifier in the format
"{GUID}".
Returns:
str: path represented by the known folder identifier or None of not
available.
"""
return cls._PATH_PER_GUID.get(known_folder_identifier.lower(), None)