まず、私のプログラムが何をしているのか。DirListing という名前のコンボ ボックスがあり、サーバーに接続するための FTP コードがあります。「リストの更新」ボタンがあるので、クリックすると、ディレクトリ内のすべてのコンテンツが一覧表示されます。ディレクトリを一覧表示したいのですが、コンボボックスに入れます。これが私が持っているものです。
onClick のコード。
private void updateList_Click(object sender, EventArgs e)
{
string[] listDir = ftpClient.directoryListSimple("/");
for (int i = 0; i < listDir.Count(); i++)
{
DirListing.Items.AddRange(listDir);
}
}
ここに directoryListSimple があります
public string[] directoryListSimple(string directory)
{
try
{
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
ftpRequest.Credentials = new NetworkCredential(user, pass);
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = true;
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
ftpStream = ftpResponse.GetResponseStream();
StreamReader ftpReader = new StreamReader(ftpStream);
string directoryRaw = null;
try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
ftpReader.Close();
ftpStream.Close();
ftpResponse.Close();
ftpRequest = null;
try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
}
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
return new string[] { "" };
}
もちろん、onClick の上にある実際のログイン情報のような他の FTP 情報もあります。
ftp ftpClient = new ftp(@"server", "user", "password");
プログラムをデバッグして「リストの更新」ボタンをクリックすると、コンボボックスに空白が追加されるだけです。
ディレクトリ内のファイルをコンボボックスにリストするという私の目標を達成するのを手伝ってくれる人はいますか?