管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2023-12-06 81d9f361726e760ffd69cd000cb2e154d4cd3749
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace JavaCode.cs
{
    public class TerrainHelper
    {
        public static void RemoveTerrain()
        {
            char[] chars = new char[] { ',' };
            string folder = @"E:\data\35.ty\terrain";
            string[] strs = File.ReadAllLines(folder + "\\layer.json");
 
            int i = -1;
            foreach (string str in strs)
            {
                if (!str.Contains("[ {")) continue;
 
                i++;
                if (i < 5 || i > 12) continue;
 
                //   ,[ { "startX": 6604, "startY": 2834, "endX": 6702, "endY": 2975 } ]
                string[] vals = str.Replace("startX", "").Replace("startY", "").Replace("endX", "").Replace("endY", "").Replace("[ {", "").Replace("} ]", "").Replace("\"", "").Replace(":", "").Replace(" ", "").Split(chars, StringSplitOptions.RemoveEmptyEntries);
 
                int startX = int.Parse(vals[0]), startY = int.Parse(vals[1]), endX = int.Parse(vals[2]), endY = int.Parse(vals[3]);
                RemoveFiles(folder, i, startX, endX, startY, endY);
            }
        }
 
        private static void RemoveFiles(string folder, int level, int startX, int endX, int startY, int endY)
        {
            string path = Path.Combine(folder, level.ToString());
            if (!Directory.Exists(path)) return;
 
            string[] dirs = Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly);
            foreach (string dir in dirs)
            {
                string dirName = Path.GetFileName(dir);
 
                int d = 0;
                if (!int.TryParse(dirName, out d))
                {
                    Directory.Delete(dir, true);
                    continue;
                }
 
                if (d < startX || d > endX)
                {
                    Directory.Delete(dir, true);
                    continue;
                }
 
                string[] files = Directory.GetFiles(dir);
                foreach (string file in files)
                {
                    string fileName = Path.GetFileName(file).Replace(".terrain", "");
 
                    int f= 0;
                    if (!int.TryParse(fileName, out f))
                    {
                        File.Delete(file);
                        continue;
                    }
 
                    if (f < startY || f > endY)
                    {
                        File.Delete(file);
                    }
                }
            }
        }
    }
}