Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.IO;
- using System.IO.Compression;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace FTPDownload
- {
- class Program
- {
- private static string username = read_AppConfig("ftpuser");
- private static string passwort = read_AppConfig("ftppass");
- private static string ftpServer = read_AppConfig("ftphost");
- private static string lokalerPfad = read_AppConfig("downloaddir");
- static void Main(string[] args)
- {
- Program p = new Program();
- Console.WriteLine("Current ServerName: " + ftpServer);
- Console.WriteLine("Current Username: " + username);
- Console.WriteLine("Current Password: " + passwort);
- Console.WriteLine("Current LocalPath: " + lokalerPfad);
- Console.WriteLine("Downloading files From server");
- //FTPDownload();
- DirectoryInfo directorySelected = new DirectoryInfo(lokalerPfad);
- foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.zip"))
- {
- Unzipp_Files(fileToDecompress);
- Console.WriteLine(string.Format("Unzipping file {0}", directorySelected.Name));
- }
- Console.WriteLine("Croping File Names!");
- Crop_FileName(lokalerPfad);
- read_AppConfig(lokalerPfad);
- Console.ReadLine();
- }
- #region FTPDownload
- /// <summary>
- /// Downloads all files from given FTPServer
- /// </summary>
- public static void FTPDownload()
- {
- FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpServer);
- ftpRequest.Credentials = new NetworkCredential(username, passwort);
- ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
- FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
- StreamReader streamReader = new StreamReader(response.GetResponseStream());
- List<string> directories = new List<string>();
- string line = streamReader.ReadLine();
- while (!string.IsNullOrEmpty(line))
- {
- directories.Add(line);
- line = streamReader.ReadLine();
- }
- streamReader.Close();
- using (WebClient ftpClient = new WebClient())
- {
- ftpClient.Credentials = new System.Net.NetworkCredential(username, passwort);
- for (int i = 0; i <= directories.Count - 1; i++)
- {
- if (directories[i].Contains("."))
- {
- Console.WriteLine("Loading file" + i);
- string path = ftpServer + directories[i].ToString();
- string trnsfrpth = lokalerPfad + directories[i].ToString();
- ftpClient.DownloadFile(path, trnsfrpth);
- }
- }
- }
- }
- #endregion
- #region Unzipp
- /// <summary>
- /// Unzipps files at localPath
- /// </summary>
- /// <param name="files"></param>
- public static void Unzipp_Files(FileInfo files)
- {
- using (FileStream originalFileStream = files.OpenRead())
- {
- string currentFileName = files.FullName;
- string newFileName = currentFileName.Remove(currentFileName.Length - files.Extension.Length);
- if (!File.Exists(newFileName))
- {
- try
- {
- using (ZipArchive archive = new ZipArchive(originalFileStream))
- {
- archive.ExtractToDirectory(lokalerPfad);
- Console.WriteLine("Decompressed: {0}", files.Name);
- }
- Delete_Old_File(currentFileName, files);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
- else
- {
- Console.WriteLine("File already exists!");
- originalFileStream.Close();
- Delete_Old_File(newFileName, files);
- Unzipp_Files(files);
- }
- }
- }
- #endregion
- #region DeleteOldFiles
- /// <summary>
- /// Deletes old Files
- /// </summary>
- /// <param name="currentFile"></param>
- /// <param name="files"></param>
- public static void Delete_Old_File(string currentFile, FileInfo files)
- {
- Console.WriteLine("Deleting file " + currentFile);
- File.Delete(currentFile);
- }
- #endregion
- #region CropFileNames
- /// <summary>
- /// Removes Numbers and underscore
- /// </summary>
- /// <param name="lokalerPfad"></param>
- public static void Crop_FileName(string lokalerPfad)
- {
- DirectoryInfo d = new DirectoryInfo(lokalerPfad);
- FileInfo[] infos = d.GetFiles();
- foreach (FileInfo f in infos)
- {
- var output = "" ;
- string oldFile = f.FullName;
- if (Path.GetExtension(oldFile) == "zip")
- {
- Console.WriteLine("Is a zip");
- }
- else
- {
- output = Regex.Replace(oldFile, @"[\d-_]", string.Empty);
- }
- try
- {
- File.Move(oldFile, output);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
- }
- #endregion
- #region ReadAppConfig
- public static string read_AppConfig(string key)
- {
- var i = ConfigurationManager.AppSettings[key];
- return i;
- }
- #region SetAppsetings
- /// <summary>
- /// Set Value of a key in the app settings
- /// </summary>
- /// <param name="key"></param>
- /// <param name="value"></param>
- public void setAppSetting(string key, string value)
- {
- //Laden der AppSettings
- Configuration config = ConfigurationManager.OpenExeConfiguration(
- System.Reflection.Assembly.GetExecutingAssembly().Location);
- //Überprüfen ob Key existiert
- if (config.AppSettings.Settings[key] != null)
- {
- //Key existiert. Löschen des Keys zum "überschreiben"
- config.AppSettings.Settings.Remove(key);
- }
- //Anlegen eines neuen KeyValue-Paars
- config.AppSettings.Settings.Add(key, value);
- //Speichern der aktualisierten AppSettings
- config.Save(ConfigurationSaveMode.Modified);
- }
- #endregion
- }
- #endregion
- }
- w
Add Comment
Please, Sign In to add comment