<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Parsing Ftp.ListDirectoryDetails and ListDirectory</title>
	<atom:link href="http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory</link>
	<description></description>
	<lastBuildDate>Fri, 13 Jan 2012 04:40:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Dan2010</title>
		<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/comment-page-1/#comment-5756</link>
		<dc:creator>Dan2010</dc:creator>
		<pubDate>Tue, 14 Jul 2009 07:28:07 +0000</pubDate>
		<guid isPermaLink="false">http://copyandwaste.com/archive/2007/12/25/parsing-webrequestmethods.ftp.listdirectorydetails-and-listdirectory.aspx#comment-5756</guid>
		<description>This is a better solution in VB Net:

Private Function GetOnlyDirectories() As String
        Dim TheShortList As String = FTPListDirectory(txbx_FTPServer.Text, txbx_FTPUID.Text, txbx_FTPPassword.Text, True)
        Dim TheLongList As String = FTPListDirectory(txbx_FTPServer.Text, txbx_FTPUID.Text, txbx_FTPPassword.Text)
        Dim theDirectories As String = &quot;&quot;
        If TheShortList.StartsWith(&quot;Connection Problem - Error:&quot;) Then
            Dim Lines() As String = Split(TheLongList.Trim, vbCrLf)
            For Each theLine As String In Lines
                If theLine.Trim  &quot;&quot; And theLine.ToLower.StartsWith(&quot;d&quot;) Then
                    Dim Temp As String = theLine.Remove(0, theLine.IndexOf(&quot;:&quot;) + 3).Trim
                    If Temp  &quot;.&quot; And Temp  &quot;..&quot; Then
                        theDirectories &amp;= vbCrLf &amp; Temp
                        theDirectories = theDirectories.Trim
                    End If
                End If
            Next
        Else
            Dim TheLists() As String = Split(TheShortList.Trim, vbCrLf)
            Dim Lines() As String = Split(TheLongList.Trim, vbCrLf)
            For Each thelist As String In TheLists
                For Each theLine As String In Lines
                    If theLine.Trim.ToLower.EndsWith(thelist.Trim.ToLower) And theLine.Trim  &quot;.&quot; And theLine.Trim  &quot;..&quot; Then
                        theDirectories &amp;= vbCrLf &amp; thelist.Trim
                        theDirectories = theDirectories.Trim
                    End If
                Next
            Next
        End If
        Return theDirectories
 End Function



Function FTPListDirectory(ByVal Target As String, ByVal UID As String, _
                              ByVal Pass As String, Optional ByVal Shortlist As Boolean = False) As String
        Try
            Dim clsRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create(Target),  _
                                                                    System.Net.FtpWebRequest)
            clsRequest.Credentials = New System.Net.NetworkCredential(UID, Pass)
            If Shortlist Then
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectory
            Else
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails
            End If
            Dim str As String = GetStringResponse(clsRequest)
            clsRequest.Abort()
            Return str
        Catch ex As Exception
            Return &quot;Connection Problem - Error:&quot; &amp; vbCrLf &amp; vbCrLf &amp; ex.Message
        End Try
End Function


 &#039;&#039;&#039; 
    &#039;&#039;&#039; Obtains a response stream as a string
    &#039;&#039;&#039; 
    &#039;&#039;&#039; current FTP request
    &#039;&#039;&#039; String containing response
    &#039;&#039;&#039; FTP servers typically return strings with CR and
    &#039;&#039;&#039; not CRLF. Use respons.Replace(vbCR, vbCRLF) to convert
    &#039;&#039;&#039; to an MSDOS string
    Private Function GetStringResponse(ByVal ftp As FtpWebRequest) As String
        &#039;Get the result, streaming to a string
        Dim result As String = &quot;&quot;
        Using response As FtpWebResponse = CType(ftp.GetResponse, FtpWebResponse)
            Dim size As Long = response.ContentLength
            Using datastream As Stream = response.GetResponseStream
                Using sr As New StreamReader(datastream)
                    result = sr.ReadToEnd()
                    sr.Close()
                End Using
                datastream.Close()
            End Using
            response.Close()
        End Using
        Return result
 End Function</description>
		<content:encoded><![CDATA[<p>This is a better solution in VB Net:</p>
<p>Private Function GetOnlyDirectories() As String<br />
        Dim TheShortList As String = FTPListDirectory(txbx_FTPServer.Text, txbx_FTPUID.Text, txbx_FTPPassword.Text, True)<br />
        Dim TheLongList As String = FTPListDirectory(txbx_FTPServer.Text, txbx_FTPUID.Text, txbx_FTPPassword.Text)<br />
        Dim theDirectories As String = &#8220;&#8221;<br />
        If TheShortList.StartsWith(&#8220;Connection Problem &#8211; Error:&#8221;) Then<br />
            Dim Lines() As String = Split(TheLongList.Trim, vbCrLf)<br />
            For Each theLine As String In Lines<br />
                If theLine.Trim  &#8220;&#8221; And theLine.ToLower.StartsWith(&#8220;d&#8221;) Then<br />
                    Dim Temp As String = theLine.Remove(0, theLine.IndexOf(&#8220;:&#8221;) + 3).Trim<br />
                    If Temp  &#8220;.&#8221; And Temp  &#8220;..&#8221; Then<br />
                        theDirectories &amp;= vbCrLf &amp; Temp<br />
                        theDirectories = theDirectories.Trim<br />
                    End If<br />
                End If<br />
            Next<br />
        Else<br />
            Dim TheLists() As String = Split(TheShortList.Trim, vbCrLf)<br />
            Dim Lines() As String = Split(TheLongList.Trim, vbCrLf)<br />
            For Each thelist As String In TheLists<br />
                For Each theLine As String In Lines<br />
                    If theLine.Trim.ToLower.EndsWith(thelist.Trim.ToLower) And theLine.Trim  &#8220;.&#8221; And theLine.Trim  &#8220;..&#8221; Then<br />
                        theDirectories &amp;= vbCrLf &amp; thelist.Trim<br />
                        theDirectories = theDirectories.Trim<br />
                    End If<br />
                Next<br />
            Next<br />
        End If<br />
        Return theDirectories<br />
 End Function</p>
<p>Function FTPListDirectory(ByVal Target As String, ByVal UID As String, _<br />
                              ByVal Pass As String, Optional ByVal Shortlist As Boolean = False) As String<br />
        Try<br />
            Dim clsRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create(Target),  _<br />
                                                                    System.Net.FtpWebRequest)<br />
            clsRequest.Credentials = New System.Net.NetworkCredential(UID, Pass)<br />
            If Shortlist Then<br />
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectory<br />
            Else<br />
                clsRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails<br />
            End If<br />
            Dim str As String = GetStringResponse(clsRequest)<br />
            clsRequest.Abort()<br />
            Return str<br />
        Catch ex As Exception<br />
            Return &#8220;Connection Problem &#8211; Error:&#8221; &amp; vbCrLf &amp; vbCrLf &amp; ex.Message<br />
        End Try<br />
End Function</p>
<p> &#8221;&#8217;<br />
    &#8221;&#8217; Obtains a response stream as a string<br />
    &#8221;&#8217;<br />
    &#8221;&#8217; current FTP request<br />
    &#8221;&#8217; String containing response<br />
    &#8221;&#8217; FTP servers typically return strings with CR and<br />
    &#8221;&#8217; not CRLF. Use respons.Replace(vbCR, vbCRLF) to convert<br />
    &#8221;&#8217; to an MSDOS string<br />
    Private Function GetStringResponse(ByVal ftp As FtpWebRequest) As String<br />
        &#8216;Get the result, streaming to a string<br />
        Dim result As String = &#8220;&#8221;<br />
        Using response As FtpWebResponse = CType(ftp.GetResponse, FtpWebResponse)<br />
            Dim size As Long = response.ContentLength<br />
            Using datastream As Stream = response.GetResponseStream<br />
                Using sr As New StreamReader(datastream)<br />
                    result = sr.ReadToEnd()<br />
                    sr.Close()<br />
                End Using<br />
                datastream.Close()<br />
            End Using<br />
            response.Close()<br />
        End Using<br />
        Return result<br />
 End Function</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/comment-page-1/#comment-339</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Thu, 23 Oct 2008 03:12:23 +0000</pubDate>
		<guid isPermaLink="false">http://copyandwaste.com/archive/2007/12/25/parsing-webrequestmethods.ftp.listdirectorydetails-and-listdirectory.aspx#comment-339</guid>
		<description>Thanks a bunch. This helped get me what I needed for a directory list and a file list.</description>
		<content:encoded><![CDATA[<p>Thanks a bunch. This helped get me what I needed for a directory list and a file list.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Susan</title>
		<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/comment-page-1/#comment-11</link>
		<dc:creator>Susan</dc:creator>
		<pubDate>Fri, 06 Jun 2008 02:52:40 +0000</pubDate>
		<guid isPermaLink="false">http://copyandwaste.com/archive/2007/12/25/parsing-webrequestmethods.ftp.listdirectorydetails-and-listdirectory.aspx#comment-11</guid>
		<description>ListDirectoryDetails returns this for me:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;04-30-08  03:04PM                40960 File Space Mine.exe&lt;br /&gt;</description>
		<content:encoded><![CDATA[<p>ListDirectoryDetails returns this for me:</p>
<p>04-30-08  03:04PM                40960 File Space Mine.exe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: konks</title>
		<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/comment-page-1/#comment-13</link>
		<dc:creator>konks</dc:creator>
		<pubDate>Sat, 02 Feb 2008 16:00:50 +0000</pubDate>
		<guid isPermaLink="false">http://copyandwaste.com/archive/2007/12/25/parsing-webrequestmethods.ftp.listdirectorydetails-and-listdirectory.aspx#comment-13</guid>
		<description>Using ListDirectoryDetails should yield a line starting with &quot;-&quot; or &quot;d&quot; I have not seen a scenario when either characters are not present. &quot;d&quot; == directory, &quot;-&quot; == file</description>
		<content:encoded><![CDATA[<p>Using ListDirectoryDetails should yield a line starting with &#8220;-&#8221; or &#8220;d&#8221; I have not seen a scenario when either characters are not present. &#8220;d&#8221; == directory, &#8220;-&#8221; == file</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kunal</title>
		<link>http://www.copyandwaste.com/2007/12/25/parsing-webrequestmethodsftplistdirectorydetails-and-listdirectory/comment-page-1/#comment-12</link>
		<dc:creator>kunal</dc:creator>
		<pubDate>Tue, 29 Jan 2008 04:29:57 +0000</pubDate>
		<guid isPermaLink="false">http://copyandwaste.com/archive/2007/12/25/parsing-webrequestmethods.ftp.listdirectorydetails-and-listdirectory.aspx#comment-12</guid>
		<description>I was trying to parse the data returned by ListDirectoryDetails and in case of directories I was getting &lt;Dir&gt; text which was not there in your code. I guess u need to add that condition as well to check if its a directory or a file.</description>
		<content:encoded><![CDATA[<p>I was trying to parse the data returned by ListDirectoryDetails and in case of directories I was getting <dir> text which was not there in your code. I guess u need to add that condition as well to check if its a directory or a file.</dir></p>
]]></content:encoded>
	</item>
</channel>
</rss>

