/// <summary> /// Process a single file as a file (with found Rom data) /// </summary> /// <param name="datFile">Current DatFile object to add to</param> /// <param name="item">File to be added</param> /// <param name="item">Rom data to be used to write to file</param> /// <param name="basepath">Path the represents the parent directory</param> /// <param name="parent">Parent game to be used</param> private static void ProcessFileHelper(DatFile datFile, string item, DatItem datItem, string basepath, string parent) { // If we didn't get an accepted parsed type somehow, cancel out List <ItemType> parsed = new List <ItemType> { ItemType.Disk, ItemType.Media, ItemType.Rom }; if (!parsed.Contains(datItem.ItemType)) { return; } try { // If the basepath doesn't end with a directory separator, add it if (!basepath.EndsWith(Path.DirectorySeparatorChar.ToString())) { basepath += Path.DirectorySeparatorChar.ToString(); } // Make sure we have the full item path item = Path.GetFullPath(item); // Process the item to sanitize names based on input SetDatItemInfo(datFile, datItem, item, parent, basepath); // Add the file information to the DAT string key = datItem.GetKey(ItemKey.CRC); datFile.Items.Add(key, datItem); logger.Verbose($"File added: {datItem.GetName() ?? string.Empty}"); } catch (IOException ex) { logger.Error(ex); return; } }