Dazu kannst du dir eine Funktion schreiben.
private void PopulateTreeView(string directory, TreeNodeCollection parentNode)
{
    // Durchsuche die Unterverzeichnisse
    string[] subDirectories = Directory.GetDirectories(directory);
    foreach (string subDirectory in subDirectories)
    {
        TreeNode node = parentNode.Add(Path.GetFileName(subDirectory));
        PopulateTreeView(subDirectory, node.Nodes); // Rekursiver Aufruf für Unterverzeichnisse
    }
    // Durchsuche die Dateien im aktuellen Verzeichnis
    string[] files = Directory.GetFiles(directory);
    foreach (string file in files)
    {
        parentNode.Add(Path.GetFileName(file));
    }
}
So kannst du es aufrufen.
PopulateTreeView("C:\Music", treeView.Nodes);