public static void Export(string mapPath, List <ImportFile> fileList, string destPath) { IntPtr hMpq; if (StormLib.SFileOpenArchive(mapPath, 0u, 0u, out hMpq)) { for (int i = 0; i < fileList.Count; i++) { var file = fileList[i]; if (!string.IsNullOrEmpty(file.OrigPath)) { var fp = Path.Combine(destPath, file.FilePath); Directory.CreateDirectory(Path.GetDirectoryName(fp)); StormLib.SFileExtractFile(hMpq, file.OrigPath, fp, 0u); } } } if (hMpq != IntPtr.Zero) { StormLib.SFileCloseArchive(hMpq); } }