VB.Net Tutorial/Collections/Dictionary — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 12:53, 26 мая 2010
Содержание
- 1 Add object to Dictionary
- 2 Delete a Directory
- 3 Delete a directory containing files and sub directories
- 4 Delete a directory with exception catch
- 5 Dictionary(Of String, String)
- 6 Directory Exists
- 7 Directory.GetFileSystemEntries
- 8 Directory Move
- 9 Get all directories under a directory
- 10 Get all directories under a directory with conditions
- 11 Get all files under a directory
- 12 Get all files under a directory with conditions
- 13 Get and set the current directory
- 14 Get current directory: CurDir()
- 15 Get Directory Root
- 16 Get Parent Directory
- 17 Illustrate the pattern of using the Dir function. It is not intended to be compiled.
- 18 String and custom class Dictionary
- 19 Use directories match
- 20 Use MkDir to create a Directory
- 21 Use RmDir to delete a directory
Add object to Dictionary
Option Strict On
Imports System.Collections.Generic
Public Module modMain
Private employees As Dictionary(Of String, Employee)
Public Sub Main()
employees = New Dictionary(Of String, Employee)
employees.Add("name",New Employee("name", "1"))
employees.Add("name1",New Employee("name1", "1"))
Console.WriteLine("There are {0} employees now on file. They are:",employees.Count)
For Each pair As KeyValuePair(Of String, Employee) In Employees
Console.WriteLine(" {0}: {1}", pair.Key, pair.Value.Name)
Next
End Sub
End Module
Public Class Employee
Private empName As String
Private empID As String
Public Sub New(name As String, ID As String)
Me.empName = name
Me.empID = ID
End Sub
Public Property Name() As String
Get
Return Me.empName
End Get
Set
Me.empName = Value
End Set
End Property
Public Property ID As String
Get
return Me.empID
End Get
Set
Me.empID = Value
End Set
End Property
End Class
There are 2 employees now on file. They are: name: name name1: name1
Delete a Directory
Imports System.IO
Public Class Tester
Public Shared Sub Main
Directory.Delete("c:\\a")
End Sub
End Class
Delete a directory containing files and sub directories
Imports System.IO
Public Class Tester
Public Shared Sub Main
Try
System.IO.Directory.Delete("c:\a", True)
Catch ex As Exception
Console.WriteLine(ex.ToString)
Finally
Beep()
End Try
End Sub
End Class
Delete a directory with exception catch
Imports System.IO
Public Class Tester
Public Shared Sub Main
Try
System.IO.Directory.Delete("c:\a")
Catch ex As Exception
Console.WriteLine(ex.ToString)
Finally
Beep()
End Try
End Sub
End Class
System.IO.IOException: The directory is not empty. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive) at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive) at Tester.Main()
Dictionary(Of String, String)
Imports System.Collections.Generic
Public Class GenericTest
Public Shared Sub Main()
Dim education As New Dictionary(Of String, String)
education.Add("BA", "Bachelor of Arts")
education.Add("BS", "Bachelor of Science")
education.Add("MA", "Master of Arts")
education.Add("MS", "Master of Science")
education.Add("MPhil", "Master of Philosophy")
education.Add("PhD", "Doctor of Philosophy")
Console.WriteLine(education.Item("BS"))
Console.WriteLine()
For Each pair As KeyValuePair(Of String, String) In education
Console.WriteLine(pair.Value)
Next
End Sub
End Class
Bachelor of Science Bachelor of Arts Bachelor of Science Master of Arts Master of Science Master of Philosophy Doctor of Philosophy
Directory Exists
Imports System.IO
Public Class Tester
Public Shared Sub Main
If Directory.Exists("C:\\a") = True Then
Console.WriteLine("true")
End If
End Sub
End Class
Directory.GetFileSystemEntries
Imports System.IO
public class Test
public Shared Sub Main
Dim aryItems() As String
Dim strPath As String = "C:\Program Files"
Dim strItem As String
aryItems = Directory.GetFileSystemEntries(strPath)
For Each strItem In aryItems
If Directory.Exists(strItem) Then
Console.WriteLine("FOLDER " & strItem)
Else
Console.WriteLine("FILE " & strItem)
End If
Next strItem
End Sub
End class
FOLDER C:\Program Files\Adobe FOLDER C:\Program Files\AMD FOLDER C:\Program Files\ATI Technologies FOLDER C:\Program Files\Common Files FOLDER C:\Program Files\ComPlus Applications FOLDER C:\Program Files\CONEXANT FOLDER C:\Program Files\ftp FOLDER C:\Program Files\HPQ FOLDER C:\Program Files\InstallShield Installation Information FOLDER C:\Program Files\Internet Explorer FOLDER C:\Program Files\Messenger FOLDER C:\Program Files\microsoft frontpage FOLDER C:\Program Files\Microsoft Office
Directory Move
Imports System.IO
Public Class Tester
Public Shared Sub Main
Directory.Move("c:\\b", "c:\\a")
End Sub
End Class
Get all directories under a directory
Imports System.IO
Public Class Tester
Public Shared Sub Main
Dim arrDirs() As String
Dim strDir As String
Try
arrDirs = Directory.GetDirectories("c:\\")
For Each strDir In arrDirs
Console.WriteLine(strDir)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
End Class
c:\\Documents and Settings c:\\Java_Dev c:\\oracle c:\\Program Files c:\\RECYCLER c:\\System Volume Information c:\\SYSTEM.SAV c:\\Temp c:\\WINDOWS
Get all directories under a directory with conditions
Imports System.IO
Public Class Tester
Public Shared Sub Main
Dim arrDirs() As String
Dim strDir As String
Try
arrDirs = Directory.GetDirectories("c:\\","Wind*")
For Each strDir In arrDirs
Console.WriteLine(strDir)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
End Class
c:\\WINDOWS
Get all files under a directory
Imports System.IO
Public Class Tester
Public Shared Sub Main
Dim arrDirs() As String
Dim strDir As String
Try
arrDirs = Directory.GetFiles("c:\\")
For Each strDir In arrDirs
Console.WriteLine(strDir)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
End Class
c:\\AUTOEXEC.BAT c:\\boot.ini c:\\CONFIG.SYS c:\\DebugMessages.txt c:\\hiberfil.sys c:\\IO.SYS c:\\MSDOS.SYS c:\\NTDETECT.ru c:\\ntldr c:\\pagefile.sys c:\\test.txt c:\\test1.txt
Get all files under a directory with conditions
Imports System.IO
Public Class Tester
Public Shared Sub Main
Dim arrDirs() As String
Dim strDir As String
Try
arrDirs = Directory.GetFiles("c:\\","*.sys")
For Each strDir In arrDirs
Console.WriteLine(strDir)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
End Class
c:\\CONFIG.SYS c:\\hiberfil.sys c:\\IO.SYS c:\\MSDOS.SYS c:\\pagefile.sys
Get and set the current directory
Imports System.IO
public class Test
public Shared Sub Main
Console.WriteLine("Current directory is " & Directory.GetCurrentDirectory & ".")
Try
Directory.SetCurrentDirectory("..\..\..\..\..\Temp")
Console.WriteLine("Switched current folder to " & _
Directory.GetCurrentDirectory & ".")
Catch exc As FileNotFoundException
Console.WriteLine("Invalid folder specified, currrent directory is " & _
vbCrLf & Directory.GetCurrentDirectory & ".")
Catch exc As Exception
Console.WriteLine("Can"t access the specified folder.")
End Try
End Sub
End class
Current directory is C:\Java_Dev\WEB\dev\VB. Switched current folder to C:\Temp.
Get current directory: CurDir()
Option Strict On
Public Class FileSystemTest
Public Shared Sub Main()
Console.WriteLine(CurDir())
End Sub
End Class
C:\Java_Dev\WEB\dev\VB
Get Directory Root
Imports System.IO
Public Class Tester
Public Shared Sub Main
Console.WriteLine(Directory.GetDirectoryRoot("c:\\Java_Dev"))
End Sub
End Class
c:\
Get Parent Directory
Imports System.IO
Public Class Tester
Public Shared Sub Main
Console.WriteLine(Directory.GetParent("c:\\Java_Dev").ToString)
End Sub
End Class
c:\
Illustrate the pattern of using the Dir function. It is not intended to be compiled.
Option Strict On
Public Module modErr
Public Sub Main()
Dim filename As String
filename = Dir("*.*", FileAttribute.Normal)
Do While Not filename = String.Empty
Console.WriteLine(filename)
filename = Dir()
Loop
End Sub
End Module
String and custom class Dictionary
Imports System.Collections.Generic
Public Structure Employee
Dim Name As String
Dim HireDate As Date
Dim BirthDate As Date
End Structure
Public Module Test
Public Sub Main()
Dim employees As New Dictionary(of String, Employee)
Dim dateToFind As Date
Dim input As String
Dim emp As New Employee
emp.Name = "S"
emp.HireDate = #1/2/2003#
emp.BirthDate = #7/12/1977#
employees.Add(emp.Name, emp)
emp.Name = "A"
emp.HireDate = #8/18/1999#
emp.BirthDate = #3/16/1964#
employees.Add(emp.Name, emp)
emp.Name = "B"
emp.HireDate = #3/1/1987#
emp.BirthDate = #11/12/1955#
employees.Add(emp.Name, emp)
dateToFind = CDate("7/12/1977")
For Each employee As KeyValuePair(of String, Employee) In employees
If Month(employee.Value.BirthDate) = Month(dateToFind) AndAlso Day(employee.Value.BirthDate) = Day(dateToFind) Then
Console.WriteLine("{0:MMMM d} is the bithday of {1}.", dateToFind, employee.Key)
End If
If Month(employee.Value.HireDate) = Month(dateToFind) AndAlso Day(employee.Value.HireDate) = Day(dateToFind) Then
Console.WriteLine("{0:MMMM d} is the hiring anniversary of {1}.", dateToFind, employee.Key)
End If
Next
End Sub
End Module
Use directories match
Imports System.IO
public class Test
public Shared Sub Main
Dim aryDirs() As String
Dim strDir As String
aryDirs = Directory.GetDirectories("C:\Windows", "*SYSTEM*")
Console.WriteLine(" folders match the pattern "*SYSTEM*".")
For Each strDir In aryDirs
Console.WriteLine(strDir)
Next strDir
End Sub
End class
folders match the pattern "*SYSTEM*". C:\Windows\system C:\Windows\system32
Use MkDir to create a Directory
Public Class Tester
Public Shared Sub Main
MkDir("c:\\a")
End Sub
End Class
Use RmDir to delete a directory
Public Class Tester
Public Shared Sub Main
RmDir("c:\\a")
End Sub
End Class