Vb.net 如何将可读和不可读的图像分离到不同的文件夹中?

Vb.net 如何将可读和不可读的图像分离到不同的文件夹中?,vb.net,photo,Vb.net,Photo,我有文件夹D:\two\u img。在那个文件夹中,我有大量可读和不可读的.bmp图像 如何将无法读取的图像移动到另一个文件夹 Private子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击 将openfiled1设置为新OpenFileDialog 如果openfiled1.ShowDialog DialogResult.Cancel,则 PictureBox1.Image=Image.FromFil

我有文件夹
D:\two\u img
。在那个文件夹中,我有大量可读和不可读的
.bmp
图像

如何将无法读取的图像移动到另一个文件夹

Private子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
将openfiled1设置为新OpenFileDialog
如果openfiled1.ShowDialog DialogResult.Cancel,则
PictureBox1.Image=Image.FromFile(openfiled1.FileName)
如果结束
端接头

请尝试以下代码:

Dim di As New DirectoryInfo("D:\both_img")
Dim fiArr As FileInfo() = di.GetFiles()
Dim fi As FileInfo
For Each fi In fiArr
    Try
      Dim image1 As Bitmap = CType(Image.FromFile(fi.FullName, True), Bitmap)
      fi.MoveTo(validFiledestPath) 'Move to valid file folder
    Catch ex As OutOfMemoryException
      fi.MoveTo(invalidFileDestPath) 'Move to invalid file folder
    End Try
Next fri
此代码迭代所有文件。尝试使用
Image.FromFile
打开它们,如果打开,则将它们移动到有效文件夹,否则将移动到无效文件夹。

请尝试以下代码:

Dim di As New DirectoryInfo("D:\both_img")
Dim fiArr As FileInfo() = di.GetFiles()
Dim fi As FileInfo
For Each fi In fiArr
    Try
      Dim image1 As Bitmap = CType(Image.FromFile(fi.FullName, True), Bitmap)
      fi.MoveTo(validFiledestPath) 'Move to valid file folder
    Catch ex As OutOfMemoryException
      fi.MoveTo(invalidFileDestPath) 'Move to invalid file folder
    End Try
Next fri
此代码迭代所有文件。尝试使用
Image.FromFile
打开它们,如果打开,则将它们移动到有效文件夹,否则将移动到无效文件夹。

什么是“不可读”?视觉上不可读?代码无法读取?您不需要
PictureBox
。这是用来显示图像的。这跟你想要什么有什么关系?想一想你需要做什么,一次一个阶段地解决它。显然,如果要对文件夹中的文件执行任何操作,则需要能够访问文件夹中的文件。你研究过了吗?若否,原因为何?只有当你能够访问这些文件时,你才能对它们做任何事情。一步一个脚印。我有很多图像。打开这些图像时,会出现一个错误消息,无法读取文件头/文件可能已损坏,或者对象文件太大。因此,迭代每个文件,尝试打开每个文件并将该段代码包装在一个文件中,然后在文件到达
Catch
块时移动文件(即加载失败时).这是一项相当容易的任务。我为您提供了
Try/Catch
的文档-您将围绕容易失败(抛出错误)的代码使用这些文档。您已经知道如何打开图像,所以现在需要做的就是了解如何迭代指定目录中的每个文件。什么是“不可读”?视觉上不可读?代码无法读取?您不需要
PictureBox
。这是用来显示图像的。这跟你想要什么有什么关系?想一想你需要做什么,一次一个阶段地解决它。显然,如果要对文件夹中的文件执行任何操作,则需要能够访问文件夹中的文件。你研究过了吗?若否,原因为何?只有当你能够访问这些文件时,你才能对它们做任何事情。一步一个脚印。我有很多图像。打开这些图像时,会出现一个错误消息,无法读取文件头/文件可能已损坏,或者对象文件太大。因此,迭代每个文件,尝试打开每个文件并将该段代码包装在一个文件中,然后在文件到达
Catch
块时移动文件(即加载失败时).这是一项相当容易的任务。我为您提供了
Try/Catch
的文档-您将围绕容易失败(抛出错误)的代码使用这些文档。您已经知道如何打开图像,所以现在需要做的就是了解如何工作,以便迭代指定目录中的每个文件。