请问怎么才能让判断循环起来啊 郁闷

yiyiwenwen1211 2010-11-13 10:00:55


Dim SourceFolder, TargetFolder As String

Dim MultiFolder As Integer = 1

SourceFolder = "C:\Inetpub\wwwroot\Angel_PoliceSystem\Maps\11\"
TargetFolder = "C:\1\"

Dim dir As New IO.DirectoryInfo(SourceFolder)

Dim files() As IO.FileInfo = dir.GetFiles("*.*")

For Each file As IO.FileInfo In files

If IO.Directory.Exists(TargetFolder & MultiFolder) = True Then
Dim dirs As New IO.DirectoryInfo(TargetFolder & MultiFolder)
Dim filess() As IO.FileInfo = dirs.GetFiles("*.jpg")
If filess.Length >= 10 Then

MultiFolder = MultiFolder + 1
If IO.Directory.Exists(TargetFolder & MultiFolder) = True Then
Dim dirss As New IO.DirectoryInfo(TargetFolder & MultiFolder)
Dim filesss() As IO.FileInfo = dirs.GetFiles("*.jpg")
If filess.Length >= 10 Then
'//////////如何修改?
End If
End If

IO.Directory.CreateDirectory(TargetFolder & MultiFolder)
IO.File.Copy(file.FullName, TargetFolder & MultiFolder & "\" & file.Name)


Else
IO.File.Copy(file.FullName, TargetFolder & MultiFolder & "\" & file.Name)
End If

Else

IO.Directory.CreateDirectory(TargetFolder & MultiFolder)
IO.File.Copy(file.FullName, TargetFolder & MultiFolder & "\" & file.Name)

End If

Next






上面的代码 当文件夹存在的时候 判断该文件夹下文件的数量是不是超过10 如果超过的话 将路径变更为下一个路径 继续判断 直到文件夹下的文件数量小于10 再将文件拷贝到目标文件夹下

请问该怎么实现啊?谢谢
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQRN 2010-11-16
  • 打赏
  • 举报
回复
将指定目录下的文件分别塞到指定目标目录下,10个文件塞进一个子目录,以从1开始的数字递增做为目录名,记得给分!!!!!!!!!!
还有,你自己的代码里面判断目录内是否有10个jpg文件,我照搬,如果要改为全部文件的话,不说你应该也会。。。。

Dim FileNum As Integer = 10
Dim MultiFolder As Integer = 1
Dim TargetFolder As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim SourceFolder, NowFolder As String
SourceFolder = "C:\Inetpub\wwwroot\Angel_PoliceSystem\Maps\11\"
TargetFolder = "C:\1\"
NowFolder = TargetFolder & MultiFolder
Dim dir As New IO.DirectoryInfo(SourceFolder)
Dim files() As IO.FileInfo = dir.GetFiles("*.*") '源 文件
For Each file As IO.FileInfo In files
If FileNum = 10 Then
NowFolder = TargetFolder & MultiFolder
NowFolder = CheckFolder(NowFolder)
MultiFolder += 1
End If
IO.File.Copy(file.FullName, NowFolder & "\" & file.Name)
FileNum += 1
Next
End Sub
Function CheckFolder(ByVal DirPath As String) As String
If IO.Directory.Exists(DirPath) = True Then '检查目标目录是否存在
'检查目录下的文件数量
Dim dirs As New IO.DirectoryInfo(DirPath)
Dim dirfiles() As IO.FileInfo = dirs.GetFiles("*.jpg")
If dirfiles.Length < 10 Then
'如果小于10个,那么就补齐,设置已有的数量
FileNum = dirfiles.Length
Return DirPath
Else
MultiFolder += 1
Return CheckFolder(TargetFolder & MultiFolder)
End If
Else
IO.Directory.CreateDirectory(DirPath)
FileNum = 0
Return DirPath
End If
End Function

rart2008 2010-11-14
  • 打赏
  • 举报
回复
这个不怎么熟!
winner2050 2010-11-14
  • 打赏
  • 举报
回复
这个要用到递归。

你这么写,要复制无穷遍代码才行。
wwfgu00ing 2010-11-14
  • 打赏
  • 举报
回复
你看看递归是怎么做的
java447060786 2010-11-13
  • 打赏
  • 举报
回复
那你把要循环的代码写成一个方法,循环调用试试呗
yiyiwenwen1211 2010-11-13
  • 打赏
  • 举报
回复
郁闷啊 调了半天 还是不行 .....
qq346127416 2010-11-13
  • 打赏
  • 举报
回复
vb不熟、、 帮顶、、

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧