2010-12-09 6 views
2

Je rencontre des problèmes pour obtenir la quantité de fichiers uptodate dans un répertoire. Les fichiers sont en cours d'impression à partir de PDFCreator et envoyés dans ce dossier. Lorsque le nombre de fichiers dans le dossier correspond au nombre de fichiers en cours d'impression, il doit alors se casser et continuer avec mon code. Le problème est que le compte ne reste pas à jour et je ne sais pas comment le rafraîchir. Ceci est mon code:Comment faire pour actualiser System.IO.DirectoryInfo.GetFiles(). Longueur

System.IO.DirectoryInfo pdf = new System.IO.DirectoryInfo(@"C:\0TeklaBatchProcess\pdf"); 
int count = pdf.GetFiles().Length; 

while (count != DE.GetSize()) 
{ 
    if (count < DE.GetSize()) 
    { 
     pdf.Refresh(); 
    } 
    else 
    { 
     break; 
    } 
} 

Si quelqu'un peut me dire comment rafraîchir ou mettre à jour le nombre de fichiers que je vous en serais reconnaissant beaucoup.

Répondre

5

count est un int local - la seule façon de mettre à jour cela serait d'interroger à nouveau. Essayez de remplacer pdf.Refresh() avec:

count = pdf.GetFiles().Length; 

(en fait, Directory.GetFiles(di.FullName).Length est probablement moins cher)

Cependant! Vous ne voulez pas voulez le faire dans une boucle serrée; peut-être ajouter un Sleep(1000), ou (mieux) utiliser FileSystemWatcher. Encore mieux encore; vérifier pour un spécifique fichier de sorte que vous ne frappez pas GetFiles() agressivement.

+0

count = pdf.GetFiles(). Longueur travaillée. Merci beaucoup pour ça, je ne peux pas croire que je ne l'ai pas essayé. J'avais essayé de dormir mais cela n'a pas fonctionné parce que le compte n'avait pas encore mis à jour. Je ne peux pas vérifier un fichier spécifique parce que les noms des fichiers sont différents tout le temps. Même si cela fonctionne maintenant, je suis intéressé par la façon d'utiliser FileSystemWatcher pour vérifier le nombre de fichiers depuis que vous avez dit que c'était mieux. Pouvez-vous me montrer comment? – Mutley

+0

@Mutley - désolé, ce n'est pas quelque chose que j'ai fait, sauf pour quelques projets de test –

+0

ok, pas de problème. Merci encore! Je voterais sur votre réponse, mais je n'ai pas assez de rep .. – Mutley

Questions connexes