DataLoader/CS/Importor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
DataLoader/LoginWin.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
DataLoader/MainWindow.xaml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
DataLoader/MainWindow.xaml.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
DataLoader/CS/Importor.cs
@@ -68,7 +68,7 @@ return obj == null ? 0 : Convert.ToInt32(obj); } public static void Import(ObservableCollection<ViewData> viewDatas, string source, string target) public static void GetFiles(ObservableCollection<ViewData> viewDatas, string source) { string[] files = Directory.GetFiles(source); for (int i = 0, c = files.Length; i < c; i++) @@ -81,8 +81,6 @@ SetSysMeta(vd); } ImportFiles(viewDatas, target); } private static void SetSysMeta(ViewData vd) @@ -112,19 +110,19 @@ { try { vd.Status = "获取MD5码"; vd.Status = "生成MD5码..."; string guid = MD5Helper.GetMD5Hash(vd.FilePath); if (IsFileExists(guid)) { vd.Status = "已存在"; vd.Status = "已存在!"; continue; } vd.Status = "插入数据库"; vd.Status = "插入数据库..."; int metaId = InsertMeta(vd.Meta); if (metaId == 0) { vd.Status = "元数据出错"; vd.Status = "元数据出错!"; continue; } @@ -132,10 +130,10 @@ SysMetaFile mf = GetMetaFile(vd, metaId, start, guid); InsertMetaFile(mf); vd.Status = "复制文件"; vd.Status = "复制文件..."; CopyFile(vd.FilePath, Path.Combine(target, mf.path)); vd.Status = "完成"; vd.Status = "完成。"; } catch (Exception ex) { DataLoader/LoginWin.xaml
@@ -2,8 +2,8 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Chrome="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" Loaded="Window_Loaded" Title="登录窗口" Height="480" Width="600" WindowStartupLocation="CenterScreen"> Loaded="Window_Loaded" Title="登录窗口" Height="500" Width="750" WindowStartupLocation="CenterScreen"> <Grid> <Chrome:ChromiumWebBrowser x:Name="web" Margin="1" Grid.Row="1" /> </Grid> DataLoader/MainWindow.xaml
@@ -1,7 +1,7 @@ <Window x:Class="DataLoader.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="480" Width="600" Height="500" Width="750" Loaded="Window_Loaded" Title="数据入库" WindowStartupLocation="CenterScreen"> <Window.Resources> @@ -38,11 +38,11 @@ </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="7*" /> <ColumnDefinition Width="5*" /> <ColumnDefinition Width="18*" /> <ColumnDefinition Width="4*" /> <ColumnDefinition Width="18*" /> <ColumnDefinition Width="7*" /> <ColumnDefinition Width="18*" /> <ColumnDefinition Width="8*" /> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="用户ID:" VerticalAlignment="Center" HorizontalAlignment="Right" /> @@ -64,14 +64,23 @@ <ListView.View> <GridView> <GridView.Columns> <GridViewColumn Header="序号" Width="50" DisplayMemberBinding="{Binding Path=ID, Mode=OneWay}"></GridViewColumn> <GridViewColumn Header="路径" Width="Auto" DisplayMemberBinding="{Binding Path=FilePath, Mode=OneWay}"></GridViewColumn> <GridViewColumn Header="状态" Width="80" DisplayMemberBinding="{Binding Path=Status, Mode=OneWay}"></GridViewColumn> <!--<GridViewColumn Header="序号" Width="50" DisplayMemberBinding="{Binding Path=ID, Mode=OneWay}"/>--> <GridViewColumn Header="序号" Width="Auto"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Path=ID, Mode=OneWay}" TextAlignment="Center" MinWidth="{Binding Path=ActualWidth, ElementName=column}" HorizontalAlignment="Center"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="路径" Width="Auto" DisplayMemberBinding="{Binding Path=FilePath, Mode=OneWay}"/> <GridViewColumn Header="运行状态" Width="120" DisplayMemberBinding="{Binding Path=Status, Mode=OneWay}"/> </GridView.Columns> </GridView> </ListView.View> </ListView> </ScrollViewer> <Button x:Name="btnImport" Grid.Row="3" Grid.Column="4" Content="导 入" Style="{StaticResource btn}" Click="Import_MouseLeftButtonDown"/> <Button x:Name="btnLoad" Grid.Row="3" Grid.Column="4" Content="加 载" Style="{StaticResource btn}" Click="Load_MouseLeftButtonDown"/> <Button x:Name="btnImport" Grid.Row="4" Grid.Column="4" Content="导 入" Style="{StaticResource btn}" Click="Import_MouseLeftButtonDown"/> </Grid> </Window> DataLoader/MainWindow.xaml.cs
@@ -6,10 +6,13 @@ using System.ComponentModel; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Forms.VisualStyles; using System.Windows.Threading; namespace DataLoader { @@ -19,9 +22,9 @@ public event PropertyChangedEventHandler PropertyChanged; private string _sourcePath= "D:\\LF\\data\\mdb"; private string _sourcePath = "D:\\opting\\得文数据"; // "D:\\LF\\data\\mdb"; private string _targetPath= "D:\\LF\\upload"; private string _targetPath = "D:\\LF\\upload"; private LoginWin win; @@ -66,7 +69,9 @@ { Tool.Owner = this; this.btnLoad.IsEnabled = false; this.btnImport.IsEnabled = false; lvView.DataContext = viewDatas; lvView.SetBinding(ListView.ItemsSourceProperty, new Binding()); @@ -87,8 +92,10 @@ if (win != null) win.Close(); this.Show(); this.tbUid.Text = Tool.UserId.ToString() + "," + Tool.Uname; this.tbUid.Text = Tool.UserId.ToString() + "-" + Tool.Uname; this.tbToken.Text = Tool.Token; this.btnLoad.IsEnabled = true; this.btnImport.IsEnabled = true; } @@ -122,34 +129,47 @@ this.TargetPath = dialog.SelectedPath.Trim(); } // 导入 private void Import_MouseLeftButtonDown(object sender, RoutedEventArgs e) // 加载 private void Load_MouseLeftButtonDown(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(SourcePath) || !Directory.Exists(SourcePath)) { MessageBox.Show("请选择数据目录!"); MessageBox.Show("请选择数据目录!", "提示"); return; } if (string.IsNullOrEmpty(TargetPath) || !Directory.Exists(TargetPath)) { MessageBox.Show("请选择入库目录!"); MessageBox.Show("请选择入库目录!", "提示"); return; } string[] files = Directory.GetFiles(SourcePath); if (null == files || files.Length == 0) { MessageBox.Show("数据目录下没有文件!"); MessageBox.Show("数据目录下没有文件!", "提示"); return; } viewDatas.Clear(); this.viewDatas.Clear(); Importor.GetFiles(viewDatas, SourcePath); } Dispatcher.Invoke(new Action(delegate // 导入 private void Import_MouseLeftButtonDown(object sender, RoutedEventArgs e) { if (viewDatas.Count == 0) return; Thread thread = new Thread(new ThreadStart(() => { this.btnImport.IsEnabled = false; Importor.Import(viewDatas, SourcePath, TargetPath); this.btnImport.IsEnabled = true; Importor.ImportFiles(viewDatas, TargetPath); lvView.Dispatcher.BeginInvoke((ThreadStart)delegate { ICollectionView view = CollectionViewSource.GetDefaultView(viewDatas); view.Refresh(); }); MessageBox.Show("数据导入完成!", "提示"); })); thread.Start(); } } }