public static void ExtractFiltered(string cabPath, string extractPath, string[] filters, bool inclusive) { var sb = new Text.StringBuilder(); if (filters != null && filters.Length > 0) { sb.Append(filters[0]); } for (int i = 1; i < filters.Length; i++) { sb.Append(','); sb.Append(filters[i]); } using (var pin = new PinCollection()) { NativeCommon.CabExtractFiltered( pin.AddBlittable(cabPath), pin.AddBlittable(extractPath), pin.AddBlittable(sb.ToString()), NativeTypes.ToBOOLEAN(inclusive)); } }