System.IO.File.Exist(filePath)判断另外一台服务器上某个文件是否存在

直接判断是不可能的,因为system.file.exist进行判断时,如果异常也同样返回false值 
我是通过下面方法去实现判断网络路径文件存在的
首先如果返回false值,就需要判断是否是网络路径,如果是网络路径,是否有权限访问,
我这里通过Windows api 函数WNetAddConnection2 去连接目标机器,
根据配置文件读取的目标服务器提供的访问用户名和密码(lpRemoteUsr, lpRemotePass)去连接,
只有获得权限能够连接上目标机器,才能判断目标机器上是否存在目标文件。

VB.NET code
 
  If IO.File.Exists(SKYTemplateFile) = False Then 
                    ‘文件不存在 
                     If SKYTemplatePath.IndexOf("\\") = 0 Then 
                         If Connect(SKYTemplatePath, lpRemoteUsr, lpRemotePass) = False Then 
                             ShowMsgBox("...") 
                             Return False 
                         ElseIf IO.File.Exists(SKYTemplateFile) = False then 
                                 ShowMsgBox("...") 
                                 Return False  
                         End If 
                     Else 
                         ShowMsgBox("...") 
                         Return False  
                     End If 
                 End If 
  
 Public Function Connect(ByVal lpRemoteName As String, ByVal lpRemoteUsr As String, ByVal lpRemotePass As String) As Boolean 
         Dim intRtn As Integer 
  
         Try 
  
             Dim typNetResource As NETRESOURCE 
  
             With typNetResource 
                 .dwScope = RESOURCE_CONNECTED 
                 .dwType = RESOURCETYPE_DISK 
                 .dwDisplayType = RESOURCEDISPLAYTYPE_SHARE 
                 .dwUsage = RESOURCEUSAGE_CONTAINER 
                 ''.lpLocalName = LocalName 
                 .lpRemoteName = lpRemoteName 
             End With 
  
             intRtn = WNetAddConnection2(typNetResource, lpRemotePass, lpRemoteUsr, CONNECT_UPDATE_PROFILE) 
             Select Case intRtn 
                 Case 0 
                     '连接                   
                 Case Else 
                     '连接Error 
                     Return False 
  
             End Select 
  
             Return True 
  
         Catch ex As Exception 
             Throw ex 
             Return False 
         Finally 
         End Try 
  
     End Function 
 

你可能感兴趣的:(System.IO.File.Exist(filePath)判断另外一台服务器上某个文件是否存在)