The process cannot access the file "" because it is being used by another process.

Discussion in 'ASP .Net' started by RSH, May 19, 2006.

  1. RSH

    RSH Guest

    Hi,

    I have an ASP .Net web page that creates a temp directory on the server then
    it is using the File.Copy command to move a file to a temp download
    directory, Then I am doing a response.Redirect to that URL.

    The problem is that whenever I run the page the script fails on the
    File.Copy() command everytime with an error of:

    The process cannot access the file
    "c:\inetpub\wwwroot\TestPages\Downloads\12431234051920061359\585F56645D4740714337170A043006180038060C017E081A10.doc"
    because it is being used by another process.

    This shouldn't be a permissions issue because I have full control to
    everyone just for testing purposes.

    Here is the code snippet:

    strTempdirectory = strFileSystemPath & CompanyID & dDateStamp

    strFile1 = strFileSystemPath & strFileName

    strFile2 = strTempdirectory & "\" & strFileName

    If Not Directory.Exists(strTempdirectory) Then

    Directory.CreateDirectory(strTempdirectory)

    End If

    If File.Exists(strFile2) Then

    File.Delete(strFile2)

    End If

    Fails here: ---> File.Copy(strFile1, strFile2, False)

    strRedirectPath = strHttpPath & CompanyID & dDateStamp & "/" & strFileName

    Response.Redirect(strRedirectPath)



    Thanks in advance for any help you might be able to offer.

    Ron
     
    RSH, May 19, 2006
    #1
    1. Advertising

  2. RSH

    RSH Guest

    One recent development...

    If I step through the code it works fine...and then each subsequent page
    hit works for that file, but if i don't step through the code on a file it
    gives me the error.

    Thanks,
    Ron


    "RSH" <> wrote in message
    news:%...
    > Hi,
    >
    > I have an ASP .Net web page that creates a temp directory on the server
    > then it is using the File.Copy command to move a file to a temp download
    > directory, Then I am doing a response.Redirect to that URL.
    >
    > The problem is that whenever I run the page the script fails on the
    > File.Copy() command everytime with an error of:
    >
    > The process cannot access the file
    > "c:\inetpub\wwwroot\TestPages\Downloads\12431234051920061359\585F56645D4740714337170A043006180038060C017E081A10.doc"
    > because it is being used by another process.
    >
    > This shouldn't be a permissions issue because I have full control to
    > everyone just for testing purposes.
    >
    > Here is the code snippet:
    >
    > strTempdirectory = strFileSystemPath & CompanyID & dDateStamp
    >
    > strFile1 = strFileSystemPath & strFileName
    >
    > strFile2 = strTempdirectory & "\" & strFileName
    >
    > If Not Directory.Exists(strTempdirectory) Then
    >
    > Directory.CreateDirectory(strTempdirectory)
    >
    > End If
    >
    > If File.Exists(strFile2) Then
    >
    > File.Delete(strFile2)
    >
    > End If
    >
    > Fails here: ---> File.Copy(strFile1, strFile2, False)
    >
    > strRedirectPath = strHttpPath & CompanyID & dDateStamp & "/" & strFileName
    >
    > Response.Redirect(strRedirectPath)
    >
    >
    >
    > Thanks in advance for any help you might be able to offer.
    >
    > Ron
    >
    >
    >
     
    RSH, May 19, 2006
    #2
    1. Advertising

  3. A very simple thought: Do you close the fileStream ?
     
    Tasos Vogiatzoglou, May 19, 2006
    #3
  4. RSH

    RSH Guest

    Im actually not using the filestream. I am just creating the file with:
    File.Create(strFileSystemDirectory & strFilename)

    Im starting to think it might be a permissions issue...either that or .Net
    is not releasing the file.


    "Tasos Vogiatzoglou" <> wrote in message
    news:...
    >A very simple thought: Do you close the fileStream ?
    >
     
    RSH, May 19, 2006
    #4
  5. This method opens a FileStream.
     
    Tasos Vogiatzoglou, May 19, 2006
    #5
  6. RSH

    RSH Guest

    That fixed it thanks!



    "Tasos Vogiatzoglou" <> wrote in message
    news:...
    > This method opens a FileStream.
    >
     
    RSH, May 19, 2006
    #6
  7. Please could you tell me how do you resolve this problem..i m getting same
    access problem in writing to a file.

    "RSH" <> wrote in message
    news:O3BL2$...
    > That fixed it thanks!
    >
    >
    >
    > "Tasos Vogiatzoglou" <> wrote in message
    > news:...
    >> This method opens a FileStream.
    >>

    >
    >
     
    Arsalan Ahmad, May 20, 2006
    #7
  8. RSH

    RSH Guest

    Sure.

    Apparently simply calling the File.Create leaves the file in a zombie state.
    What you need to do is create and access the file through the declaration of
    a StreamWriter object:

    Dim sw As StreamWriter = New StreamWriter(strFileSystemDirectory &
    strEncodedFileName)

    ' Add some text to the file.

    sw.Write("This is the ")

    sw.WriteLine("header for the file.")

    sw.WriteLine("-------------------")

    ' Arbitrary objects can also be written to the file.

    sw.Write("The date is: ")

    sw.WriteLine(DateTime.Now)

    sw.Close()

    sw = Nothing



    This creates a simple file and writes a few lines of text to it then
    disposes the object properly which in turn unlocks the file.

    It works great now.



    Ron


    "Arsalan Ahmad" <> wrote in message
    news:%...
    > Please could you tell me how do you resolve this problem..i m getting same
    > access problem in writing to a file.
    >
    > "RSH" <> wrote in message
    > news:O3BL2$...
    >> That fixed it thanks!
    >>
    >>
    >>
    >> "Tasos Vogiatzoglou" <> wrote in message
    >> news:...
    >>> This method opens a FileStream.
    >>>

    >>
    >>

    >
    >
     
    RSH, May 22, 2006
    #8
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page