Asset paths + FName?

Many times in my code I have to use the asset name or path, such as:


if (ItemAssetName.IsEmpty())
	{
		const UClass* InClass = Cast<UClass>(this);
		if (InClass && InClass->ClassGeneratedBy)
		{
			// this UObject was generated by another class, use the generator to identify
			// the source asset:
			ItemAssetName = InClass->ClassGeneratedBy->GetName();
		}
		else
		{
			ItemAssetName = GetName();
		}

	}

Notably, all of the classes and UObjects return FString for these names and paths. Is there a reason these aren’t FName and is it safe to convert them to FName?