VB.NET - Check if URL is a directory or file

佐手、 提交于 2019-12-24 23:10:10

问题


Is there a way, in VB.NET, to check if a URL is a directory? I've seen a lot of methods of checking if a local path is a directory but what about a remote url (i.e. http://website.com/foo) I read that some plain text files have no extension so I need a solution other than checking what if the file name contains a space or something.


回答1:


You can use FileAttributes class:

'get the file attributes for file or directory
FileAttributes attr = File.GetAttributes("c:\\Temp")

'detect whether its a directory or file
If ((attr & FileAttributes.Directory) = FileAttributes.Directory) Then
    MessageBox.Show("Its a directory")
Else
    MessageBox.Show("Its a file")
End IF

Or you can use the Uri class:

Private IsLocalPath(Byval p As String) As Boolean
  Return New Uri(p).IsFile
End Function

You can enhance this method to include support for certain invalid URIs:

Private IsLocalPath(Byval p As String) As Boolean
  If (p.StartsWith("http:\\")) Then      
    Return False
  End IF

  Return New Uri(p).IsFile
End Function



回答2:


The only solution I can think of is to try to download the file from the Internet, if the download succeeded So it is a file, otherwise it is not a file (but you don't know for sure that this is a directory).




回答3:


This worked for me...

If System.IO.Path.HasExtension(FileAddress.Text)  Then
   MessageBox.Show("Its a file")
Else
   MessageBox.Show("Its a directory")
End IF


来源:https://stackoverflow.com/questions/15858953/vb-net-check-if-url-is-a-directory-or-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!