Je travaille sur une application qui va vérifier le serveur FTP et liste tous les fichiers de répertoire, qui fonctionnent parfaitement sans BACKGROUND WORKER mais quand j'utilise Background worker, beaucoup de problème se produit . Le premier problème était que je ne peux pas accéder à ListView à partir de BackGround worker, j'ai utilisé une autre méthode (stocker la liste dans Array, puis Update sur BackGround Worker Process Complete) mais cela n'a pas fonctionné. Ensuite, j'ai utilisé un autre formulaire qui était caché et faisant la même fonction, mais le programme est toujours bloqué à la liste des fichiers FTP. En fait, je veux juste lister les fichiers de ce répertoire (ftp://blah/subdir/[files sont ici]) à ListView1. Comment est-ce possible sans geler l'interface utilisateur? J'ai essayé d'utiliser le travailleur de fond, mais ça n'a pas fonctionné, comment peut-il l'utiliser pour travailler? Voici le codeListe des fichiers de FTP dans ListView en utilisant BackGround Worker en C#
fonction
public string[] ListDirectory()
{
string hostdir = textBoxX2.Text + textBoxX3.Text;
var request = createRequest(hostdir,WebRequestMethods.Ftp.ListDirectory);
using (var response = (FtpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream, true))
{
while (!reader.EndOfStream)
{
listView1.Items.Add(reader.ReadLine());
}
}
}
}
List<string> l = new List<string>();
return l.ToArray();
}
private FtpWebRequest createRequest(string uri, string method)
{
var r = (FtpWebRequest)WebRequest.Create(uri);
r.Credentials = new NetworkCredential(textBoxX4.Text, textBoxX5.Text);
r.Method = method;
return r;
}
Le code ci-dessus fonctionne, mais gèle l'interface utilisateur, et quand je l'utilise travailleur de fond, certaines des fonctions ne fonctionne pas comme, ne peuvent pas accéder à ListView1 de l'objet il a été créé ou similaire .
... Toute aide Apprécié Merci
Merci beaucoup, cela a fonctionné parfaitement, mais qu'en est-il. et .. ? – SHoCK
Comment puis-je supprimer. et .. [DOTS] – SHoCK
Je ne suis pas familier avec le format de la chaîne que cette requête FTP renvoie, mais si vous pouvez identifier où le nom du répertoire est, vous pouvez vérifier que ce n'est pas '.' ou' .. '. –