exception while copying a file to a network drive

G

Guest

I using the routine below to copy file to a network drive for a regular
backup process. Before calling this routine I using another function to check
the presence of the LAN connection and the server where the network drive
exists.
Although of this check I am sometimes getting an exception (in 5% of
times)saying "Could not find the U:\...\File.ext" or part of its path"
Although the network dirve is available and accessible by windows explorer
and the path is correct and
existing.
I would apreciate if some one can help troubleshooting this unexpected and
non understandable error.

Private Sub CopyFile(ByVal DstBasePath As String, ByVal SrcFileInfo As
FileInfo)


Try

Dim strDstFile As String = DstBasePath &
SrcFileInfo.FullName.Substring(2)

Dim DstFileInfo As New FileInfo(strDstFile)
If DstFileInfo.Directory.Exists = False Then
DstFileInfo.Directory.Create()
End If

Me.c_Status = String.Format("Copying {0}{1}To {2}", SrcFileInfo.Name,
vbCrLf, DstBasePath)

Me.c_Progress += 1

Me.c_FCD_Status.Invoke(SrcFileInfo.Name, Me.c_Progress, Me.c_Status,
True)

If DstFileInfo.Exists = False Then
SrcFileInfo.CopyTo(DstFileInfo.FullName)
ElseIf DstFileInfo.LastWriteTime <> SrcFileInfo.LastWriteTime Then
SrcFileInfo.CopyTo(DstFileInfo.FullName, True)
End If

Catch exIO As IOException

Catch ex As Exception

End Try

End Sub
 
C

Crouchie1998

Hi

Looking through your question. Please tell me the answers to these
questions:

1) What is c_Status?
2) What is c_Progress? I think an Integer, but why are you using this if you
aren't using a recursive copy?
3) What is c_FCD_Status?
4) Is youe U:\ drive original or destination directory?
5) Have you tried an UNC path instead? Example: \\MyServer\MyPath etc.
6) Why are you creating a directory based on the filename?
7) Do you have to use FileInfo instead of a string for the srcFileInfo?
8) What file permissions are you using to copy a file over a network drive?

Awaiting your answers

Crouchie1998
BA (HONS) MCP MCSE
 
G

Guest

Thank you for your time looking at my question. Here's the answers:
1- c_Status is string e.g. "Copying xxx.yyy to c:\dstDir"
2- c_Progress is integer and it is used because the routine is recuresive
it's called with a loop in another routine.
3- c_FCD_Status is "Private c_FCD_Status As FileCopierStatus" where
FileCopierStatus is "Delegate Sub FileCopierStatus(ByVal FileName As String,
ByVal Progress As Integer, ByVal strStatus As String, ByVal Status As
Boolean)"
4- "U:\" is the distination directory and it's a mapped drive. On our
network there is a personal network drive for each user that is noly
accessible by the user only and mapped to "U:"
5- I have not try the UNC because the network drive is mapped on every
target machine as said the previous point.
6 & 7- are not clear form. What's the point?
8- I don't use a file permession to copy the file over the network, because
the user is having full control over his network personal drive "U:\" see
note: 4

Just to clarify When run this routin 100 times it gives the error message on
about 5 times out of the 100. So it's working fine but for know reason it
gives the exception "Couldn't find path U:\...\file.xxx" which means there's
a problem to access the destination file.

Also it could help if I mentioned this error is happening at the CopyTo
method of the FileInfo class, so you can forget about other lines in my code
because there a many other detatils that can not be given in such short note

Thanks in advance.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top