/// <summary> /// Clean a DatItem according to the cleaner /// </summary> /// <param name="cleaner">Cleaner to implement</param> public override void Clean(Cleaner cleaner) { // Clean common items first base.Clean(cleaner); // If we're stripping unicode characters, strip item name if (cleaner?.RemoveUnicode == true) { Name = Sanitizer.RemoveUnicodeCharacters(Name); } // If we are in NTFS trim mode, trim the game name if (cleaner?.Trim == true) { // Windows max name length is 260 int usableLength = 260 - Machine.Name.Length - (cleaner.Root?.Length ?? 0); if (Name.Length > usableLength) { string ext = Path.GetExtension(Name); Name = Name.Substring(0, usableLength - ext.Length); Name += ext; } } }