六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 652|回复: 0

实现简单的FTP多线程下载和上传

[复制链接]

升级  40%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-1-3 15:38:49 | 显示全部楼层 |阅读模式
实现简单的FTP多线程下载和上传

<div id="cnblogs_post_body">    常想在园子里写点什么东西,但每当提笔,便已觉得肤浅,不敢写出来怡笑大方。对于各位战斗在软件第一线的道友们来说,本人只能算得上是一个业余选手,也许连业余也算不上。始终很自卑,觉得跟大家的水平相差太远。一直以来,对计算机都非常有兴趣,中专毕业以后,通过书籍和网上学了些皮毛。说来惭愧,中专三年,玩了三年游戏,严格地说,只能算是初中毕业。当年的愿望是希望能够从事软件相关的工作,无奈,学历低,专业也不对口。混迹于江湖N年,一直未能如愿。现在在一家工厂里从事管理工作,偶尔写点程序,协助管理。一转眼,毕业十多年了,光阴似箭哪。闲话扯多了,今天,鼓起勇气,写点东西,希望能够得到大家的指导。
  本想找一个相对完整的FTP实现的代码,集成到我工厂的ERP软件里,在网上找了很久,也没有合适的,只好自己动手做一个。以下界面只是测试界面,FTP的管理已经封装成单独的类,可以灵活调用。实现的界面如下图,使用WPF做界面,的确很方便,很灵活。接触WPF真有点相见恨晚的感觉。FTP服务器使用IIS架设,关于如何架设FTP服务器,网上有很多资料,相当简单,在此不多缀述。源码下载:http://files.cnblogs.com/laoyang999/WpfApplication1.zip


界面代码如下:
<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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表