This is already possible with the masstagger. For example, I use this copy string:
$if(%artist%,$ifgreater($substr(%artist%,1,1),0,'#',$if($stricmp($substr(%artist%,1,4),'the '),$substr(%artist%,5,5),$substr(%artist%,1,1))),'U')/
$if(%artist%,$if($stricmp($substr(%artist%,1,4),'the '),$substr(%artist%,5,$len(%artist%)),%artist%),'Unknown Artist')/
$if($stricmp($substr($directory(%_path%,2),1,7),'Various'),'Various',$if(%__replaygain_album_gain%,$if(%tracknumber%,'('$if2(%date%,'????')') '%album%,'Various'),'Various'))/
$if($stricmp($substr($directory(%_path%,2),1,7),'Various'),%title%-%artist%,$if(%__replaygain_album_gain%,$if(%tracknumber%,$ifgreater(2,$len(%tracknumber%),'0'%tracknumber%,%tracknumber%)-%title%,%title%-%artist%),%title%-%artist%))
to transfer files to my iAudio M3L.
Something that keeps track of what's on the player vs. what's on the harddrive would be nice I suppose...