VB.Net Tutorial/Stream File/File Utilities

Материал из VB Эксперт
Версия от 15:56, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Copy a file

<source lang="vbnet">Imports System.IO Imports System.Text

Public Class Tester

   Public Shared Sub Main
   
       Dim mySourceFileStream As FileStream
       Dim myDestFileStream As FileStream
       Dim bteRead() As Byte
       Dim intByte As Integer
       Dim bteMessage(128) As Byte
       Dim strCopyMessage As String = ""
       Try
           myDestFileStream = New FileStream("dest.txt", FileMode.OpenOrCreate, FileAccess.Write)
           bteMessage = Encoding.ASCII.GetBytes(strCopyMessage)
           myDestFileStream.Write(bteMessage, 0, bteMessage.Length)
           mySourceFileStream = New FileStream("source.txt", FileMode.OpenOrCreate, FileAccess.Read)
           intByte = mySourceFileStream.Length
           ReDim bteRead(intByte)
           mySourceFileStream.Read(bteRead, 0, intByte)
           myDestFileStream.Write(bteRead, 0, intByte)
           myDestFileStream.Close()
           mySourceFileStream.Close()
       Catch ex As IOException
           Console.WriteLine(ex.Message)
       End Try
   End Sub

End Class</source>

Delete a file

<source lang="vbnet">Imports System.IO Public Class Tester

   Public Shared Sub Main
       Dim f As File
       f.Delete("test.txt")
   End Sub

End Class</source>

Delete a file with kill

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Kill("Test.csv")
   End Sub

End Class</source>

File copy

<source lang="vbnet">Imports System.Windows.Forms public class FileOpenDialogFilter

  public Shared Sub Main
     System.IO.File.Copy("c:\\test.txt", "c:\\test1.txt", True)
  End Sub

End class</source>

Move a File

<source lang="vbnet">Public Class Tester

   Declare Auto Function MoveFile Lib "KERNEL32.dll" Alias "MoveFile" (ByVal src As String, ByVal

dst As String) As Boolean

   Public Shared Sub Main
   
   
           MoveFile("d:\\test.txt", "c:\\test.txt")
   End Sub

End Class</source>

Move a file with File.Move

<source lang="vbnet">Imports System.IO Public Class Tester

   Public Shared Sub Main
       Dim f As File
       f.Move("test.txt", "text2.txt")
   End Sub

End Class</source>

Unhandled Exception: System.IO.IOException: Cannot create a file when that file already exists.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.__Error.WinIOError()
   at System.IO.File.Move(String sourceFileName, String destFileName)
   at Tester.Main()

Use FreeFile

<source lang="vbnet">Option Strict On Public Module Checking

  Private Const filename As String = "CheckFile.dat"
  Public Sub Main()
     Dim fn As Integer = FreeFile
     Dim fileOpened As Boolean
     Try
        FileOpen(fn, filename, OpenMode.Append)
        fileOpened = True
        WriteLine(fn, 1605, Date.Now, "Books", 2.19)
     Catch e As Exception
        Console.WriteLine(e.GetType().Name & ": " & e.Message)
     Finally
        If fileOpened Then FileClose(fn)
     End Try
  End Sub

End Module</source>

Use FreeFile to read a text file

<source lang="vbnet">public class Test

  public Shared Sub Main
       Dim file_num As Integer = FreeFile()
       Dim file_name As String = "test.txt"
       FileOpen(file_num, file_name, OpenMode.Input, OpenAccess.Read, OpenShare.Shared)
       Do While Not EOF(file_num)
           Dim txt As String = LineInput(file_num)
           Console.WriteLine(txt)
       Loop
       FileClose(file_num)
  End Sub

End class</source>

Use the HMACSHA1 hashing function to generate a checksum for a file.

<source lang="vbnet">Imports System.Text Imports System.Security.Cryptography Public Class Tester

   Public Shared Sub Main
       Dim checksum1 As Byte()
       checksum1 = GenerateFileChecksum("test.txt")
   End Sub
   Public Shared Function GenerateFileChecksum(ByVal filePath As String) As Byte()
       Dim hashingFunction As HMACSHA1
       Dim hasingBase() As Byte
       Dim hashValue() As Byte
       Dim inStream As IO.Stream
       If (My.ruputer.FileSystem.FileExists(filePath)= False) Then
           Throw New IO.FileNotFoundException
           Return Nothing
       End If
       hasingBase = (New UnicodeEncoding).GetBytes("Cookbook")
       hashingFunction = New HMACSHA1(hasingBase, True)
       inStream = New IO.FileStream(filePath,IO.FileMode.Open, IO.FileAccess.Read)
       hashValue = hashingFunction.ruputeHash(inStream)
       inStream.Close()
       Return hashValue
   End Function

End Class</source>