public void Purge(int taskID, LITEConnection connection) { Connection = connection; var taskInfo = $"task: {taskID}"; var profile = _profileStorage.Current; //purge temp Directory.CreateDirectory(Connection.resourcePath); _logger.Log(LogLevel.Debug, $"{taskInfo} Purging {Connection.resourcePath}"); var resources = _util.DirSearch(Connection.resourcePath, "*.*"); foreach (var file in resources) { try { PurgeFile(profile, file, taskInfo); } catch (Exception e) { _logger.LogFullException(e); } } _util.CleanUpDirectory(Connection.resourcePath); }
private void PurgeInPath(FileConnection Connection, string taskInfo) { Throw.IfNull(Connection); if (Connection.inout != InOut.both && Connection.inout != InOut.inbound || Connection.inpath == null) { return; } Directory.CreateDirectory(Connection.inpath); _logger.Log(LogLevel.Debug, $"{taskInfo} Purging inpath: {Connection.inpath}"); var files = _util.DirSearch(Connection.inpath, "*.*"); foreach (var file in files) { var attr = File.GetAttributes(file); if (attr.HasFlag(FileAttributes.Hidden)) { _logger.Log(LogLevel.Debug, $"{taskInfo} Deleting hidden file {file}."); File.Delete(file); //delete hidden files like .DS_Store continue; } var lastwritetime = File.GetLastWriteTime(file); var lastaccesstime = File.GetLastAccessTime(file); var creationtime = File.GetCreationTime(file); var purgetime = DateTime.Now.AddHours(Connection.inpathRetentionHours * -1); if (lastwritetime.CompareTo(purgetime) < 0 && lastaccesstime.CompareTo(purgetime) < 0 && creationtime.CompareTo(purgetime) < 0) { _logger.Log(LogLevel.Debug, $"Purging: {file}"); File.Delete(file); } } _util.CleanUpDirectory(Connection.inpath); }
private void PurgeImpl(Profile profile, string taskInfo) { //purge temp Directory.CreateDirectory(profile.tempPath); _logger.Log(LogLevel.Debug, $"{taskInfo} Purging {profile.tempPath}"); var files = _util.DirSearch(profile.tempPath, "*.*"); foreach (var file in files) { try { ProcessFile(profile, file, taskInfo); } catch (Exception e) { _logger.LogFullException(e); } } _util.CleanUpDirectory(profile.tempPath); }