2009-12-23 11 views
0

Comment puis-je faire en sorte qu'un service Web lise/parcoure un contenu de dossier?C# accéder au dossier/fichiers via le service Web

Par exemple ce type de code:

FolderBrowserDialog folderBrowser; 
    folderBrowser = new System.Windows.Forms.FolderBrowserDialog(); 

    folderBrowser.Description = "..."; 
    folderBrowser.ShowNewFolderButton = false; 
    folderBrowser.RootFolder = Environment.SpecialFolder.MyComputer; 

Quand je construis la solution que je reçois cette erreur ...

Le nom du type ou espace de noms 'FolderBrowserDialog' ne pouvait pas être trouvé (manque-t-il une directive ou une référence d'assemblage?)

Je sais que cela n'a pas beaucoup de sens d'essayer d'utiliser un dialogue dans un webservice mais comment puis-je le faire? Mon service Web reçoit une chaîne, puis je souhaite rechercher les fichiers contenant cette chaîne dans un dossier.

Répondre

1

Vous devrez utiliser l'espace de noms System.IO pour naviguer dans votre système de fichiers; comme vous l'avez noté, n'a pas de sens d'essayer d'afficher une boîte de dialogue sur un appel de service Web.

1

Jetez un oeil à la System.IO.Directory.GetFiles()method. L'affichage de la boîte de dialogue FolderBrowser ne peut naturellement être utilisé qu'avec des applications WinForms interactives avec client lourd.

1

Utilisez un StreamReader pour lire un fichier texte:

StreamReader reader = File.OpenText(filename); 

string contents = reader.ReadToEnd(); 

reader.Close(); 

Pour afficher la liste des fichiers dans un dossier:

DirectoryInfo di = new DirectoryInfo(fullPathToFolder); 
FileInfo[] fileList = di.GetFiles("*.aspx"); 

foreach(FileInfo fi in fileList) 
{ 
    // do something with fi.Name 
}