Desktop file ID or empty string if file does not have an ID.
string[] appPaths; string filePath, nestedFilePath, wrongFilePath; version(Windows) { appPaths = [`C:\ProgramData\KDE\share\applications`, `C:\Users\username\.kde\share\applications`]; filePath = `C:\ProgramData\KDE\share\applications\example.desktop`; nestedFilePath = `C:\ProgramData\KDE\share\applications\kde\example.desktop`; wrongFilePath = `C:\ProgramData\desktop\example.desktop`; } else { appPaths = ["/usr/share/applications", "/usr/local/share/applications"]; filePath = "/usr/share/applications/example.desktop"; nestedFilePath = "/usr/share/applications/kde/example.desktop"; wrongFilePath = "/etc/desktop/example.desktop"; } assert(desktopId(nestedFilePath, appPaths) == "kde-example.desktop"); assert(desktopId(filePath, appPaths) == "example.desktop"); assert(desktopId(wrongFilePath, appPaths).empty); assert(desktopId("", appPaths).empty);
desktopfile.paths.applicationsPaths
See Desktop File ID