我正在创建一个允许用户将图像上传到我网站服务器的应用程序。但是我希望允许用户通过重命名新文件来上传多个具有相同名称的文件。 但我不知道用什么方法来执行此检查。
我正在考虑尝试将所有文件名单独放入arraylist并创建一个循环来检查其余的新文件名,如果有匹配则我会随机生成一串字母标记到新的文件名。
但是我还没有弄清楚如何填充arraylist,这是我检查重复攻击arraylist的代码:
Dim i As Integer = 0
For i = 0 To arrayFileNames.Count
If (fileName = arrayFileNames(i)) Then
Dim random As Random = New Random()
random.Next(1, 100000)
fileName = fileName & random.ToString
End If
i = i + 1
Next
但是这段代码会抛出以下错误:
指数超出范围。必须是非负数且小于集合的大小。 参数名称:index
任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
如果您正在创建For
循环,则无需手动增加计数器。删除行i = i + 1
。
Dim i As Integer = 0
For i = 0 To arrayFileNames.Count
If (fileName = arrayFileNames(i)) Then
Dim random As Random = New Random()
random.Next(1, 100000)
fileName = fileName & random.ToString
End If
Next
答案 1 :(得分:0)
你必须改变你的逻辑(我没有测试过这段代码,这是一个帮助你的例子。)
Dim random As Random = New Random()
Do While arrayFileNames.Contains(fileName)
fileName = fileName & random.Next(1, 9).ToString
Loop