我想创建一个使用Rijndael加密文件列表的加密器,这就是我创建一个基本应用程序的原因,列表框列出了特定驱动器中的所有给定文件。使用以下代码:
Imports System.IO
Public Class Form1
Public Sub DirSearch(ByVal sDir As String)
Try
For Each dir As String In Directory.GetDirectories(sDir)
For Each file In Directory.GetFiles(dir, "*.pdf")
lstFilesFound.Items.Add(file)
FileToBase64(lstFilesFound.Items.Add(file))
Next
DirSearch(dir)
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DirSearch("c:\")
End Sub
它按预期工作但当我尝试将此代码与此合并时: http://www.codeproject.com/Articles/12092/Encrypt-Decrypt-Files-in-VB-NET-Using-Rijndael
它给出了错误 '文件'是一种类型,不能用作表达式。
答案 0 :(得分:2)
您正在导入包含名为File的类型的命名空间。这会导致For Each语句发生冲突。这是匈牙利表示法有用的一个例子。将For Each语句更新为:
For Each objFile In Directory.GetFiles(dir, "*.pdf")
lstFilesFound.Items.Add(objFile)
FileToBase64(lstFilesFound.Items.Add(objFile))
Next
答案 1 :(得分:0)
For Each dir As String In Directory.GetDirectories(sDir)
For Each fi as File In Directory.GetFiles(dir, "*.pdf")
lstFilesFound.Items.Add(fi)
FileToBase64(lstFilesFound.Items.Add(fi))
Next
您无法将FILE作为add()参数传递,因为它未实例化。而是使用上面的代码。