質問編集履歴
2
誤字修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -135,7 +135,7 @@
|
|
135
135
|
```
|
136
136
|
まず、ファイルの一覧リストを取得し、それを回しながら、サイズと日付を取得できました。
|
137
137
|
ただ、この方法だとけっこう時間がかかります。
|
138
|
-
また、FTP側に必要以上の
|
138
|
+
また、FTP側に必要以上の負荷がかかっていないかも心配です。
|
139
139
|
|
140
140
|
FtpWebRequestが複数になっているのは、
|
141
141
|
.Method = System.Net.WebRequestMethods.
|
1
レスポンス頂いた内容で修正してみました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -74,4 +74,69 @@
|
|
74
74
|
|
75
75
|
取得出来れば、データベースに登録しておき、見つからないファイル名や、ファイル名でSELECTしたときに、サイズが違ったり、日付が違う(比較で新しい事は確認します)で選び出し、ダウンロードなどを自動で行えるようにしたいと思っています。
|
76
76
|
|
77
|
-
よろしくお願いいたします。
|
77
|
+
よろしくお願いいたします。
|
78
|
+
|
79
|
+
2016/09/28追記
|
80
|
+
```VB.NET
|
81
|
+
Sub bu1()
|
82
|
+
'FTPのファイル一覧を取得
|
83
|
+
Dim u As New Uri("ftp://" & Form1.TextBox3.Text & "/hogehoge/")
|
84
|
+
|
85
|
+
'FtpWebRequestの作成
|
86
|
+
ftpReq = CType(System.Net.WebRequest.Create(u), System.Net.FtpWebRequest)
|
87
|
+
|
88
|
+
'ログインユーザー名とパスワードを設定
|
89
|
+
ftpReq.Credentials = New System.Net.NetworkCredential(Form1.TextBox1.Text, Form1.TextBox2.Text)
|
90
|
+
|
91
|
+
'MethodにWebRequestMethods.Ftp.ListDirectoryDetails("NLIST")を設定
|
92
|
+
ftpReq.Method = System.Net.WebRequestMethods.Ftp.ListDirectory
|
93
|
+
'要求の完了後に接続を閉じない
|
94
|
+
ftpReq.KeepAlive = True
|
95
|
+
'PASSIVEモードを無効にする
|
96
|
+
ftpReq.UsePassive = False
|
97
|
+
''ASCIIモード
|
98
|
+
ftpReq.UseBinary = False
|
99
|
+
|
100
|
+
'FtpWebResponseを取得
|
101
|
+
Dim ftpRes As System.Net.FtpWebResponse =
|
102
|
+
CType(ftpReq.GetResponse(), System.Net.FtpWebResponse)
|
103
|
+
'FTPサーバーから送信されたデータを取得
|
104
|
+
Dim sr As New System.IO.StreamReader(ftpRes.GetResponseStream(), System.Text.Encoding.Default)
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
While (sr.Peek() >= 0)
|
109
|
+
'ファイルサイズ
|
110
|
+
Dim u2 As New Uri("ftp://" & Form1.TextBox3.Text & "/hogehoge/" & sr.ReadLine())
|
111
|
+
|
112
|
+
Dim ftpReq2 As System.Net.FtpWebRequest = CType(System.Net.WebRequest.Create(u2), System.Net.FtpWebRequest)
|
113
|
+
ftpReq2.Credentials = New System.Net.NetworkCredential(Form1.TextBox1.Text, Form1.TextBox2.Text)
|
114
|
+
ftpReq2.Method = System.Net.WebRequestMethods.Ftp.GetFileSize
|
115
|
+
|
116
|
+
Dim ftpRes2 As System.Net.FtpWebResponse = CType(ftpReq2.GetResponse(), System.Net.FtpWebResponse)
|
117
|
+
Console.WriteLine(ftpRes2.ContentLength)
|
118
|
+
|
119
|
+
ftpRes2.Close()
|
120
|
+
|
121
|
+
'更新日時
|
122
|
+
Dim ftpReq3 As System.Net.FtpWebRequest = CType(System.Net.WebRequest.Create(u2), System.Net.FtpWebRequest)
|
123
|
+
ftpReq3.Credentials = New System.Net.NetworkCredential(Form1.TextBox1.Text, Form1.TextBox2.Text)
|
124
|
+
ftpReq3.Method = System.Net.WebRequestMethods.Ftp.GetDateTimestamp
|
125
|
+
|
126
|
+
Dim ftpRes3 As System.Net.FtpWebResponse = CType(ftpReq3.GetResponse(), System.Net.FtpWebResponse)
|
127
|
+
Console.WriteLine(ftpRes3.LastModified)
|
128
|
+
|
129
|
+
ftpRes3.Close()
|
130
|
+
End While
|
131
|
+
sr.Close()
|
132
|
+
|
133
|
+
'閉じる
|
134
|
+
ftpRes.Close()
|
135
|
+
```
|
136
|
+
まず、ファイルの一覧リストを取得し、それを回しながら、サイズと日付を取得できました。
|
137
|
+
ただ、この方法だとけっこう時間がかかります。
|
138
|
+
また、FTP側に必要以上の付加がかかっていないかも心配です。
|
139
|
+
|
140
|
+
FtpWebRequestが複数になっているのは、
|
141
|
+
.Method = System.Net.WebRequestMethods.
|
142
|
+
で何か設定すると(例:ファイル一覧の.Ftp.ListDirectory)、別のメソッドを再設定できないためです。
|