设为首页 | 收藏本站
首页>IT学院>软件编程>正文
VB2005中开发新一代控制台应用程序
WWW.DBIT.CN 2006-9-5 0:42:42 热度:
 

 Console.WriteLine("DirCopy ""C:\My Folder"" ""C:\My New Folder""")
 Console.ForegroundColor = originalForegroundColor
End Sub

  该子程序做的第一事情是创建一个变量originalForegroundColor,然后它存储Console.ForegroundColor的值。在子程序的最后,代码把Console.ForegroundColor属性设置回originalForegroundColor。当你分析这部分代码时,你会注意到,在每个修改前景或背景颜色的子程序中都是这样操作的。在实际运行DirCopy之前,我想确保DirCopy总是让控制台显示相同的颜色。

  DisplayUsage做的下一件事情是,使用Console.Clear方法清除控制台屏幕。这是在VB2005中的新方法之一;这样以来,程序员可以很容易地拥有一个干净的控制台窗口。

  我想让帮助文本显眼一点,为此,我把ForegroundColor属性设置为绿色。然后,我使用Writeline和Write方法把几行文本输出到屏幕上。在描述的最后,我包括了一些怎样运行DirCopy的示例。我想使得这些示例突出一些;因此,我把ForegroundColor设置为品红色。

  四、 引擎—CopyFiles

  这个CopyFiles子程序负责完成这个应用程序中的绝大多数工作。它负责取得源目录下的一个文件列表,然后把它们复制到目的目录下。另外,它还创建了一个ConsoleProgressBar对象来管理进度条:

Private Sub CopyFiles(ByVal srcDir As String, ByVal destDir As String)
 Const BufferSourceTopLine As Integer = 8
 Const BufferDestinationTopLine As Integer = 7
 Dim rowIndex As Integer = 7
 Dim originalForegroundColor As ConsoleColor = Console.ForegroundColor
 Console.CursorVisible = False
 Console.Clear()
 Dim numberOfFiles As Integer
 numberOfFiles = My.Computer.FileSystem.GetFiles(srcDir).Count
 Dim PB As New ConsoleProgressBar(numberOfFiles)
 DisplayHeader(srcDir, destDir)
 Dim fileCounter As Integer = 1
 For Each f As String In My.Computer.FileSystem.GetFiles(srcDir)
  Dim fi As New System.IO.FileInfo(f)
  Console.ForegroundColor = ConsoleColor.Green
  Console.SetCursorPosition(0, rowIndex)
  Console.Write(fi.Name)
  If rowIndex < Console.WindowHeight - 1 Then
   rowIndex += 1
  Else
   Console.MoveBufferArea(0,BufferSourceTopLine, _
    Console.WindowWidth, _
    Console.WindowHeight - _
    BufferSourceTopLine, _
    0, _
    BufferDestinationTopLine)
  End If
  My.Computer.FileSystem.CopyFile(fi.FullName, destDir &"\" & fi.Name)
  pb.Update( fileCounter)
  fileCounter += 1
 Next
 Console.ForegroundColor = originalForegroundColor
 Console.SetCursorPosition(0, Console.WindowHeight - 1)
 Console.CursorVisible = True
End Sub

  首先,该代码保存当前的ForegroundColor。然后,它使用另外一种新特征把CursorVisible属性设置为False。在清除控制台窗口后,它检索在源目录下的文件个数并且使用这个数字作为ConsoleProgressBar构造器的最大值。稍后,我还要讨论有关于 ConsoleProgressBar的细节信息。

  我调用DisplayHeader子程序来把一些有关复制操作的信息打印到控制台窗口。由于其功能非常类似于DisplayUsage子程序,所以我在此省略对其细节的讨论。

  我使用了一个“For...Each”循环来遍历在源目录下的所有文件,并使用了一个rowIndex变量来跟踪要把文件名打印到控制台的哪一行。随着循环的不断执行,rowIndex每次增加1,直到到达控制台窗口的底部为止。一旦到达控制台窗口的底部,我利用另外一个新控制台应用程序特征— MoveBufferArea方法(下一节讨论)。

本新闻共3页,当前在第2页  1  2  3  

 
上一篇:提升JSP应用程序的七大绝招
下一篇:用VB播放Avi、Wave、midi文件
打印】【关闭
  相关文章:
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破