实现简单的FTP多线程下载和上传
实现简单的FTP多线程下载和上传<div id="cnblogs_post_body"> 常想在园子里写点什么东西,但每当提笔,便已觉得肤浅,不敢写出来怡笑大方。对于各位战斗在软件第一线的道友们来说,本人只能算得上是一个业余选手,也许连业余也算不上。始终很自卑,觉得跟大家的水平相差太远。一直以来,对计算机都非常有兴趣,中专毕业以后,通过书籍和网上学了些皮毛。说来惭愧,中专三年,玩了三年游戏,严格地说,只能算是初中毕业。当年的愿望是希望能够从事软件相关的工作,无奈,学历低,专业也不对口。混迹于江湖N年,一直未能如愿。现在在一家工厂里从事管理工作,偶尔写点程序,协助管理。一转眼,毕业十多年了,光阴似箭哪。闲话扯多了,今天,鼓起勇气,写点东西,希望能够得到大家的指导。
本想找一个相对完整的FTP实现的代码,集成到我工厂的ERP软件里,在网上找了很久,也没有合适的,只好自己动手做一个。以下界面只是测试界面,FTP的管理已经封装成单独的类,可以灵活调用。实现的界面如下图,使用WPF做界面,的确很方便,很灵活。接触WPF真有点相见恨晚的感觉。FTP服务器使用IIS架设,关于如何架设FTP服务器,网上有很多资料,相当简单,在此不多缀述。源码下载:http://files.cnblogs.com/laoyang999/WpfApplication1.zip
http://pic002.cnblogs.com/images/2012/328750/2012111921053662.jpg
界面代码如下:
<div class="cnblogs_code"> 1 <Window x:Class="WpfApplication1.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="MainWindow" Height="350" Width="525" Closing="Window_Closing"> 5 <Grid> 6 <Grid.RowDefinitions> 7 <RowDefinition Height="30"/> 8 <RowDefinition Height="30"/> 9 <RowDefinition/>10 </Grid.RowDefinitions>11 12 <StackPanel Orientation="Horizontal" Grid.Row="0" >13 <TextBlock Text="ServerIP:" Margin="3" VerticalAlignment="Center"/>14 <TextBox x:Name="serverIP" Text="192.168.1.100" VerticalAlignment="Center"15 Width="100"/>16 <TextBlock Text="UserID:" Margin="3" VerticalAlignment="Center"/>17 <TextBox x:Name="userID" Text="administrator" VerticalAlignment="Center"18 Width="80"/>19 <TextBlock Text="Password:" Margin="3" VerticalAlignment="Center"/>20 <PasswordBox x:Name="pwd" Password="123456" Width="65" Margin="3"VerticalAlignment="Center"/>21 <Button x:Name="btnConnect" Margin="3" Content="连接" VerticalAlignment="Center" Click="Connect_click" />22 </StackPanel>23 <Grid Grid.Row="1" x:Name="gdUpLoad">24 <Border BorderBrush="Gray" BorderThickness="0,1,0,0" Margin="3,0,3,0"/>25 <StackPanel Orientation="Horizontal">26 <Button x:Name="btnUpload" Content="上传" Width="50" Margin="5,4,2,4" Tag="{Binding }" Click="btn_UpLoad"/>27 <StackPanel x:Name="filePanel" Visibility="Hidden">28 <TextBlock Text="{Binding fileName}" Margin="2"/>29 <ProgressBar Maximum="100" Height="8" Value="{Binding complete}"/>30 </StackPanel>31 <TextBlock Text="{Binding DownLoadStatus}" Margin="3" VerticalAlignment="Center" Foreground="Blue"/>32 </StackPanel>33 </Grid>34 <ListBox Grid.Row="2"x:Name="fileList" 35 Margin="3" BorderBrush="Black" BorderThickness="1">36 <ListBox.Background>37 <LinearGradientBrush EndPoint="0.497,0.907" StartPoint="0.5,0">38 <GradientStop Color="#FFE5DF9E" Offset="0"/>39 <GradientStop Color="#FFFEFFF9" Offset="1"/>40 </LinearGradientBrush>41 </ListBox.Background>42 <ListBox.ItemTemplate>43 <DataTemplate>44 <Grid>45 <Grid.ColumnDefinitions>46 <ColumnDefinition Width="200"/>47 <ColumnDefinition MinWidth="80"/>48 <ColumnDefinition MinWidth="50"/>49 </Grid.ColumnDefinitions>50 <TextBlock Text="{Binding fileName}" Grid.Column="0"/>51 <ProgressBar Grid.Column="1" Margin="2" Height="10" Maximum="100" VerticalAlignment="Center"52 Value="{Binding complete}"/>53 <Button x:Name="btn" Grid.Column="2" Content="{Binding DownLoadStatus}"54 Margin="2,0,2,0" VerticalAlignment="Center" Height="20"55 Tag="{Binding }"56 Click="btn_Click"/>57 </Grid>58 </DataTemplate>59 </ListBox.ItemTemplate>60 </ListBox>61 </Grid>62 </Window>
页:
[1]