Abrufen von Bestimmten Dateien aus dem Verzeichnis Mit FTP
Ich bin erstellen einer C# - Anwendung, muss FTP auf ein Verzeichnis, um eine Datei-Liste. Der folgende code funktioniert einwandfrei. Aber der Ordner, ich bin FTPing enthält rund 92,000-Dateien. Dieser code funktioniert nicht in der Weise, dass ich will, dass es für eine Datei-Liste von dieser Größe.
Ich bin auf der Suche nur für Dateien, die beginnen mit der Zeichenfolge "c-". Nach einigen Forschung, ich bin mir auch nicht sicher, wie zu beginnen, zu versuchen, dieses Problem zu lösen. Gibt es eine Möglichkeit, die ich ändern kann, die vorhandenen code für das abrufen nur die Dateien?
public string[] getFileList() {
string[] downloadFiles;
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try {
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpHost));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPass);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = reqFTP.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null) {
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
//to remove the trailing '\n'
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();
return result.ToString().Split('\n');
}
catch (Exception ex) {
System.Windows.Forms.MessageBox.Show(ex.Message);
downloadFiles = null;
return downloadFiles;
}
}
haben Sie sah in reguläre Ausdrücke?
Ich dachte, dass reguläre Ausdrücke könnte der Weg zu gehen, aber das Problem ist tatsächlich das abrufen der Datei-Liste zu Parsen mit regulären Ausdrücken. Es werden nur hängen.
Ich bin nicht vertraut mit den FTP-Klassen per se, aber unter der Annahme, dass die Zeile enthält den Dateinamen ( und wahrscheinlich extra Zeug ), was über das teilen der saite, basierend auf Leerzeichen oder was auch immer steuerzeichen vorhanden ist, und überträgt die resultierenden Dateinamen durch ein regex und hinzufügen, um Ergebnisse, wenn Sie mit der regex?
Ich dachte, dass reguläre Ausdrücke könnte der Weg zu gehen, aber das Problem ist tatsächlich das abrufen der Datei-Liste zu Parsen mit regulären Ausdrücken. Es werden nur hängen.
Ich bin nicht vertraut mit den FTP-Klassen per se, aber unter der Annahme, dass die Zeile enthält den Dateinamen ( und wahrscheinlich extra Zeug ), was über das teilen der saite, basierend auf Leerzeichen oder was auch immer steuerzeichen vorhanden ist, und überträgt die resultierenden Dateinamen durch ein regex und hinzufügen, um Ergebnisse, wenn Sie mit der regex?
InformationsquelleAutor Jim D | 2012-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die
LIST
nicht unterstützt wildcard-Suche und es wäre in der Tat variieren von verschiedenen FTP-Plattform und richten die BEFEHLE unterstützenwerden Sie brauchen, um alle Dateien herunterzuladen Namen in das FTP-Verzeichnis mit
LIST
, wahrscheinlich in dem asynchronen Weise.InformationsquelleAutor Turbot
Hier ist eine alternative Implementierung, die entlang ähnlichen Linien. Getestet hab ich dies mit so viele wie 1000 ftp-Dateien, es könnte für Sie arbeiten. Komplette source-code kann gefunden werden hier.
InformationsquelleAutor Prahlad Yeri