Advertisement
Nekroido

TSW Maps Splitter - Program.cs

Jul 7th, 2016
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.41 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4.  
  5. namespace Map_Unpacker
  6. {
  7.     class Program
  8.     {
  9.         const string DIRECTORY_SOURCE = @"D:\Projects\TSW Encyclopedia\Resorces\exported\1010013 (Maps Merged)";
  10.         const string DIRECTORY_TARGET = @"D:\Projects\TSW Encyclopedia\Resorces\Maps";
  11.  
  12.         static void Main(string[] args)
  13.         {
  14.             ReadFiles();
  15.  
  16.             Console.WriteLine("\nPress Enter to exit application...");
  17.             Console.ReadLine();
  18.         }
  19.  
  20.         private static void ReadFiles()
  21.         {
  22.             var index = 0;
  23.             var di = new DirectoryInfo(DIRECTORY_SOURCE);
  24.             foreach (var file in di.GetFiles())
  25.             {
  26.                 var files = new List<FileModel>();
  27.  
  28.                 using (var f = File.Open(file.FullName, FileMode.Open))
  29.                 {
  30.                     var folder = Path.Combine(DIRECTORY_TARGET, Path.GetFileNameWithoutExtension(file.Name));
  31.  
  32.                     var currentFile = new FileModel
  33.                     {
  34.                         Filename = folder + "/" + index + ".jpg",
  35.                         Bytes = new List<byte>()
  36.                     };
  37.  
  38.                     if (Directory.Exists(folder) == false)
  39.                     {
  40.                         Directory.CreateDirectory(folder);
  41.                     }
  42.  
  43.                     int currentByte = 0;
  44.                     int previousByte = 0;
  45.                     while ((currentByte = f.ReadByte()) >= 0)
  46.                     {
  47.                         currentFile.Bytes.Add((byte)currentByte);
  48.  
  49.                         if (string.Format("{0:X2}", previousByte) == "FF" && string.Format("{0:X2}", currentByte) == "D9")
  50.                         {
  51.                             SaveFile(currentFile);
  52.  
  53.                             index++;
  54.  
  55.                             currentFile = new FileModel
  56.                             {
  57.                                 Filename = folder + "/" + index + ".jpg",
  58.                                 Bytes = new List<byte>()
  59.                             };
  60.                         }
  61.  
  62.                         previousByte = currentByte;
  63.                     }
  64.                 }
  65.                 index = 0;
  66.             }
  67.         }
  68.  
  69.         private static void SaveFile(FileModel fileModel)
  70.         {
  71.             File.WriteAllBytes(fileModel.Filename, fileModel.Bytes.ToArray());
  72.         }
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement