From 58eee793bd48a558c275cac04ec576b7e6666b26 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 24 八月 2023 16:09:02 +0800
Subject: [PATCH] 修改获取文件大小的方法

---
 DataLoader/Model/ViewData.cs |    4 +-
 DataLoader/CS/Importor.cs    |   58 ++++++++++++++++++-----------
 DataLoader/MainWindow.xaml   |    2 
 DataLoader/CS/Tools.cs       |   20 +++++++---
 DataLoader/CS/StaticData.cs  |    2 +
 5 files changed, 55 insertions(+), 31 deletions(-)

diff --git a/DataLoader/CS/Importor.cs b/DataLoader/CS/Importor.cs
index 0b399c1..c41ffed 100644
--- a/DataLoader/CS/Importor.cs
+++ b/DataLoader/CS/Importor.cs
@@ -91,13 +91,15 @@
         /// </summary>
         private static void SetSysMeta(ViewData vd)
         {
+            long sizes = GetFileSizes(vd);
+
             SysMeta meta = new SysMeta();
             meta.eventid = Guid.NewGuid().ToString();
             meta.metaid = 0;
             meta.verid = 0;
             meta.guid = null;
             meta.path = vd.FilePath; // *
-            meta.sizes = GetFileSizes(vd);
+            meta.sizes = Tools.SizeToMb(sizes);
             meta.tab = null;
             meta.rows = 0;
             meta.create_user = CommonProp.UserId;
@@ -112,25 +114,35 @@
             meta.acq_time = CommonProp.AcqTime;
 
             vd.Meta = meta;
-            vd.Sizes = meta.sizes;
+            vd.Sizes = Tools.FormatBytes(sizes);
         }
 
         /// <summary>
         /// 鑾峰彇鏂囦欢澶у皬
         /// </summary>
-        private static double GetFileSizes(ViewData vd)
+        private static long GetFileSizes(ViewData vd)
         {
             if (File.Exists(vd.FilePath))
             {
-                if (vd.Ext == StaticData.SHP)
+                switch (vd.Ext)
                 {
-                    List<string> files = GetShpFiles(vd.FilePath);
-                    return GetFileSizes(files.ToArray());
-                }
-                else
-                {
-                    FileInfo fi = new FileInfo(vd.FilePath);
-                    return Tools.SizeToMb(fi.Length);
+                    case StaticData.MPT:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.MPT_EXT));
+                    case StaticData.JPG:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.JPG_EXT));
+                    case StaticData.JP2:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.JP2_EXT));
+                    case StaticData.IMG:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.IMG_EXT));
+                    case StaticData.TIF:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.TIF_EXT));
+                    case StaticData.TIFF:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.TIFF_EXT));
+                    case StaticData.SHP:
+                        return GetFileSizes(GetExtFiles(vd, StaticData.SHP_EXT));
+                    default:
+                        FileInfo fi = new FileInfo(vd.FilePath);
+                        return fi.Length;
                 }
             }
 
@@ -146,15 +158,15 @@
         /// <summary>
         /// 鑾峰彇鏂囦欢澶у皬
         /// </summary>
-        private static double GetFileSizes(string[] files)
+        private static long GetFileSizes(string[] files)
         {
             if (null == files || files.Length == 0) return 0;
 
-            double sizes = 0;
+            long sizes = 0;
             foreach (string file in files)
             {
                 FileInfo fi = new FileInfo(file);
-                sizes += Tools.SizeToMb(fi.Length);
+                sizes += fi.Length;
             }
 
             return sizes;
@@ -163,21 +175,21 @@
         /// <summary>
         /// 鑾峰彇SHP鏂囦欢闆嗗悎
         /// </summary>
-        private static List<string> GetShpFiles(string shpPath)
+        private static string[] GetExtFiles(ViewData vd, List<string> exts)
         {
             List<string> files = new List<string>();
-            files.Add(shpPath);
+            files.Add(vd.FilePath);
 
-            foreach (string ext in StaticData.SHP_EXT)
+            foreach (string ext in exts)
             {
-                string file = shpPath.Replace(".shp", ext);
+                string file = vd.FilePath.Replace(vd.Ext, ext);
                 if (File.Exists(file))
                 {
                     files.Add(file);
                 }
             }
 
-            return files;
+            return files.ToArray();
         }
 
         /// <summary>
@@ -277,8 +289,7 @@
             {
                 if (vd.Ext == StaticData.SHP)
                 {
-                    List<string> files = GetShpFiles(vd.FilePath);
-                    return GetFilesMD5(files.ToArray());
+                    return GetFilesMD5(GetExtFiles(vd, StaticData.SHP_EXT));
                 }
                 else
                 {
@@ -342,6 +353,9 @@
                 case StaticData.JPG:
                     copyMultiFile(vd, StaticData.JPG_EXT);
                     break;
+                case StaticData.JP2:
+                    copyMultiFile(vd, StaticData.JP2_EXT);
+                    break;
                 case StaticData.IMG:
                     copyMultiFile(vd, StaticData.IMG_EXT);
                     break;
@@ -383,7 +397,7 @@
             {
                 try
                 {
-                    string target=source.Replace(vd.FilePath, targetFolder);
+                    string target = source.Replace(vd.FilePath, targetFolder);
                     count++;
                 }
                 catch (Exception ex)
diff --git a/DataLoader/CS/StaticData.cs b/DataLoader/CS/StaticData.cs
index f03709d..8a141ea 100644
--- a/DataLoader/CS/StaticData.cs
+++ b/DataLoader/CS/StaticData.cs
@@ -26,6 +26,8 @@
 
         public const String JPG = ".jpg";
 
+        public const String JP2 = ".jp2";
+
         public const String IMG = ".img";
 
         public const String MPT = ".mpt";
diff --git a/DataLoader/CS/Tools.cs b/DataLoader/CS/Tools.cs
index 365e538..5017513 100644
--- a/DataLoader/CS/Tools.cs
+++ b/DataLoader/CS/Tools.cs
@@ -9,8 +9,6 @@
 using System.Net.Sockets;
 using System.Net;
 using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace DataLoader.CS
 {
@@ -47,7 +45,7 @@
         /// </summary>
         public static string FormatBytes(long bytes)
         {
-            string[] Suffix = { "Byte", "KB", "MB", "GB", "TB" };
+            string[] Suffix = { "B", "KB", "MB", "GB", "TB" }; // Byte
 
             int i = 0;
             double dblSByte = bytes;
@@ -55,7 +53,7 @@
                 for (i = 0; (bytes / 1024) > 0; i++, bytes /= 1024)
                     dblSByte = bytes / 1024.0;
 
-            return String.Format("{0:0.##}{1}", dblSByte, Suffix[i]);
+            return string.Format("{0:0.##} {1}", dblSByte, Suffix[i]);
         }
 
         /// <summary>
@@ -68,9 +66,19 @@
                 return 0.001;
             }
 
-            String str = string.Format("{0:F3}", size / 1024.0 / 1024.0);
+            string str = string.Format("{0:F3}", size / 1024.0 / 1024.0);
 
-            return Double.Parse(str);
+            return double.Parse(str);
+        }
+
+        /// <summary>
+        /// 淇濈暀3浣嶅皬鏁�
+        /// </summary>
+        public static double Round3(double val)
+        {
+            string str = string.Format("{0:F3}", val);
+
+            return double.Parse(str);
         }
 
         /// <summary>
diff --git a/DataLoader/MainWindow.xaml b/DataLoader/MainWindow.xaml
index fc60e23..061b94d 100644
--- a/DataLoader/MainWindow.xaml
+++ b/DataLoader/MainWindow.xaml
@@ -212,7 +212,7 @@
                                 </GridViewColumn.CellTemplate>
                             </GridViewColumn>
                             <GridViewColumn Header="璺緞" Width="Auto" DisplayMemberBinding="{Binding Path=FilePath, Mode=OneWay}"/>
-                            <GridViewColumn Header="澶у皬(MB)" Width="Auto" DisplayMemberBinding="{Binding Path=Sizes, Mode=OneWay}"/>
+                            <GridViewColumn Header="鏂囦欢澶у皬" Width="Auto" DisplayMemberBinding="{Binding Path=Sizes, Mode=OneWay}"/>
                             <GridViewColumn Header="杩愯鐘舵��" Width="120" DisplayMemberBinding="{Binding Path=Status, Mode=OneWay}"/>
                         </GridView.Columns>
                     </GridView>
diff --git a/DataLoader/Model/ViewData.cs b/DataLoader/Model/ViewData.cs
index 5d6e7a5..b14f485 100644
--- a/DataLoader/Model/ViewData.cs
+++ b/DataLoader/Model/ViewData.cs
@@ -53,9 +53,9 @@
             }
         }
 
-        private double _sizes;
+        private string _sizes;
 
-        public double Sizes
+        public string Sizes
         {
             set
             {

--
Gitblit v1.9.3