Telerik AsyncUpload尝试重命名文件获取IOException

时间:2013-12-11 09:38:46

标签: asp.net vb.net asynchronous telerik

我想重命名我的文件。但我得到了一个IOException。它说“进程因为被另一个进程使用而无法访问文件”。

这是我的代码:

asp.net:

<telerik:RadAsyncUpload ID="rauKachelUpload" runat="server" ChunkSize="0" Localization-Cancel="Löschen" Localization-Remove="Entfernen" Localization-Select="Auswählen"
  Culture="de-DE" Skin="MetroTouch" MaxFileInputsCount="1" OnFileUploaded="rauKachelUpload_FileUploaded">
</telerik:RadAsyncUpload>

vb.net:

Protected Sub rauKachelUpload_FileUploaded(sender As Object, e As FileUploadedEventArgs)

    Try
        Using fileStream As Stream = e.File.InputStream
            Using img As System.Drawing.Image = System.Drawing.Image.FromStream(fileStream)
                Dim h As Integer = img.Height
                Dim w As Integer = img.Width
                img.Dispose()
                Dim fileName As String = e.File.GetName()
                If w = MaxWidth And h = MaxHeight Then
                    rauKachelUpload.TargetFolder = "img/kachel_grafik"

                    Dim TimeStamp As String = DateDiff("s", "01/1/1970 12:00:00 AM", DateTime.Now)
                    fileName = "KI_" & TimeStamp & WelcheSparteUndGröße

                    KachelPfad = "~/img/kachel_grafik/" & fileName
                Else
                    KachelFalsch = True
                End If
                If KachelFalsch = False Then

                    e.File.SaveAs(fileName)

                    Page.ClientScript.RegisterClientScriptBlock([GetType](), "CloseScript", "redirectParentPage('VermittlerBearbeiten.aspx?ID=" & VermittlerID & "&KBFN=" & KachelPfad & "&NA=true" & "&fwg=" & WelcheSparteUndGröße & "&Ang1=" & hfAng1CHK.Value & "&Ang2=" & hfAng2CHK.Value & "&Ang3=" & hfAng3CHK.Value & "&Ang4=" & hfAng4CHK.Value & "&AngSrc1=" & hfKachelIMGSrcBaufi.Value & "&AngSrc2=" & hfKachelIMGSrcImmo.Value & "&AngSrc3=" & hfKachelIMGSrcPhoto.Value & "&AngSrc4=" & hfKachelIMGSrcAsse.Value & "');", True)
                Else
                    rnfIconNichtErzeugt.Visible = True
                End If
            End Using
        End Using
    Catch ex As Exception
        rnfIconNichtErzeugt.Visible = True
    End Try

End Sub

不试图重命名我的文件,它可以正常工作。

有没有人知道我做错了什么?

感谢阅读。 丹尼尔

1 个答案:

答案 0 :(得分:0)

在尝试重命名文件之前,您需要确保fileStream已正确关闭,因为特定文件将由fileStream对象保存。您可以在img.Dispose()语句后尝试fileStream.Close()。