Rename file IOException

3 posts, 0 answers
  1. Daniel
    Daniel avatar
    35 posts
    Member since:
    Jan 2011

    Posted 11 Dec 2013 Link to this post

    Hi,

    i want to rename my file. But i got a IOException. It says "The Process Cannot Access the File Because It Is Being Used by Another Process".

    This is my Code:

    <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>

    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

    Without trying to rename my file, it works fine.

    Thanks for reading.
    Daniel
  2. Daniel
    Daniel avatar
    35 posts
    Member since:
    Jan 2011

    Posted 16 Dec 2013 Link to this post

    I have still this Problem. No idea?

    Thank you,
    Daniel
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Nencho
    Admin
    Nencho avatar
    1458 posts

    Posted 16 Dec 2013 Link to this post

    Hello Daniel,

    I would suggest you to manually close the fileStream, in order to make sure that it is not used by another process :

    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()
                        fileStream.Close()
                        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


    Regards,
    Nencho
    Telerik
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Back to Top