Archiv für die Kategorie: “Snippets”

C# Code Snippets

Nach meinem Snippet “FTP- Prüfen ob Verzeichnis existiert” hat Andreas Adler noch einen passenden Snippet geliefert. Mit diesem ist es möglich zu überprüfen ob eine Datei bereits auf dem FTP Server existiert:

Funktionsweise:

  • Auf FTP Server einloggen
  • FTPWebRequest mit dem Pfad der Datei erstellen und Details ausgeben lassen
  • Bei Erfolg => return true, ansonsten exisitiert die Datei nicht
public bool FileExists(string FilePath) {
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(FilePath);
req.Credentials = new NetworkCredential(UserName, Password);
req.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

try  {
FtpWebResponse resp = (FtpWebResponse)req.GetResponse;
resp.Close();
return true; // File exist
}
catch (Exception ex) {
return false; // File doesn’t exist
}
}

Habt ihr bessere Vorschläge? Dann immer her damit.

Popularity: 27% [?]

Comments Keine Kommentare »

Da FTP- Server nur Zeichen a-z, A-Z, 0-9, “_”,”-” oder “.” zulassen, habe ich heute eine kleine Methode entwickelt, die alle ungültigen Zeichen aus einem String entfernt.
Diese Variante ist performanter als mit einer Schleife über den String zu gehen, per “Contains(…)” zu überprüfen ob das entsprechende Sonderzeichen vorhanden ist. Zu dem wird der String gleich in einer “bereinigten” Variante zurückgegeben.


/// <summary>
/// Entfernt Sonderzeichen/ ungültige Zeichen aus einem String
/// </summary>
/// <param name="text">String to check</param>
/// <returns>FTPvalider String</returns>
public static String MakeStringFTPValid(String text) {
   return System.Text.RegularExpressions.Regex.Replace(text, @"[^0-9a-zA-Z._-]", string.Empty);
}

Popularity: 33% [?]

Comments Keine Kommentare »

Mein Ansatz um das Problem zu lösen:

  • Auf FTP Server einloggen
  • In das per Create(uri+ dirName) Verzeichnis versuchen zu wechseln
  • Bei Erfolg => return true, ansonsten exisitiert das Verzeichnis nicht
public bool isDicExists(String dirName) {
   FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri + dirName);
   request.Credentials = new NetworkCredential(ftpUserID,ftpPassword);
   request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory;
   try {
      FtpWebResponse response = (FtpWebResponse)request.GetResponse();
      response.close();
      return true; // Dir exist
   }
   catch (Exception ex) {
      return false; // Dir doesn´t exist
   }
}

Habt ihr bessere Vorschläge? Dann immer her damit.

Popularity: 44% [?]

Comments 5 Kommentare »