There are tons of different functions that return AssetName/AssetPath/PackagePath/PackageName, but there are subtle differences in the strings returned by different APIs.
What's worse, there are also many different APIs for manipulating assets that accept randomly formatted path strings. Some of them accept Virtual Path defined by UE, while others may accept System Path.
I'm tired of using Go to Definition to check what format an API needs. So I made a table to record what an API will return/need.
args in /Game/Cube,_suffix, args out /Game/Cube_suffix_x,Cube_suffix_x
There are also some utility functions for converting betwwen SystemPath and VirtualPath in FPackageName.
static bool TryConvertFilenameToLongPackageName
static bool TryConvertLongPackageNameToFilename
and many others
Unless you know 100% what you're doing, DO NOT manipulate Unreal assets through system APIs. Unreal knows nothing about what happens to assets and the reference graphs it tracks may be broken.