public static ArkDataContainer Create(string directory)
{
if (!Directory.Exists(directory))
throw new DirectoryNotFoundException("The ARK data directory couldn't be found.");
var playerFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arkprofile")).ToArray();
var tribeFiles = Directory.GetFiles(directory).Where(p => p.ToLower().Contains(".arktribe")).ToArray();
if (playerFiles.Length == 0 && tribeFiles.Length == 0)
throw new FileLoadException("The directory did not contain any of the parseable files.");
var container = new ArkDataContainer();
for (var i = 0; i < playerFiles.Length; i++)
container.Players.Add(Parser.ParsePlayer(playerFiles[i]));
for (var i = 0; i < tribeFiles.Length; i++)
container.Tribes.Add(Parser.ParseTribe(tribeFiles[i]));
container.LinkPlayerTribe();
return container;
}