Dim dirUri As string = "ftp://Id:Pass@IPアドレス/指定ディレクトリー名/" Dim WorkFolder() As string = Nothing Dim ListCnt As Integer = 0 Me.ftpCredential = (Id,Pass) WorkFolder = New String(99) {dirUri}
ftpRes = CType(ftpReq.GetResponse(), System.Net.FtpWebResponse) Using ListTarget As New System.IO.StreamReader(ftpRes.GetResponseStream()) LineCnt = LineCnt + 1 line = ListTarget.ReadLine() WorkFolder(LineCnt) = dirUri & line GetList(dirUri,WorkFolder,ListCnt) … 再帰 End Using
Dim WorkFolder As string = "ftp://IPアドレス/指定ディレクトリー名/" Dim dirUri As string = New URI(WorkFolder) Dim DirFolder(1999) As string Dim ListCnt(2) As Integer ListCnt(2) = 1999 Me.ftpCredential = (Id,Pass)
Try ftpRes = CType(ftpReq.GetResponse(), System.Net.FtpWebResponse) Using ListTarget As New System.IO.StreamReader(ftpRes.GetResponseStream()) While True Dim line = ListTarget.ReadLine() If line Is Nothing Then Exit While End If DirFolder(LineCnt(0)) = dirUri & line & "/" ※ディレクトリリストを絶対パスにして配列に格納(末尾の"/"はディレクトリとして認識させるため) LineCnt(0) += 1 End While End Using
While LineCnt(1) < LineCnt(2) If DirFolder(LineCnt(1)) Is Nothing Then Exit While End if GetList(DirFolder(LineCnt(1)),DirFolder,ListCnt) ※配列を頭から順番に再帰 LineCnt(1) += 1 End While
'ファイル削除 Private Sub FileDelete(ByVal WorkFolder As String)
Dim WorkDir As string = WorkFolder.SubString(0, WorkFolder.Length - 1) ※末尾の"/"を除外 Dim dirUri As string = New URI(WorkDir) Dim ftpReq As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create(dirUri),System.Net.FtpWebRequest) ftpReq.Credentials = Me.ftpCredential ftpReq.Method = System.Net.WebRequest.Methods.Ftp.FileDelete Dim ftpRes As System.Net.FtpWebResponse = _ CType(ftpReq.GetResponse(), System.Net.FtpWebResponse)
End Sub
'ディレクトリ一括削除(ファイルは全削除済み) Private Sub FolderDelet(ByVal WorkFolder As String)
Dim dirUri As string = New URI(WorkFolder) Dim ftpReq As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create(dirUri),System.Net.FtpWebRequest) ftpReq.Credentials = Me.ftpCredential ftpReq.Method = System.Net.WebRequest.Methods.Ftp.ReMoveDelete Dim ftpRes As System.Net.FtpWebResponse = _ CType(ftpReq.GetResponse(), System.Net.FtpWebResponse)