public virtual void TearDown() { if (systemIO.DirectoryExists(this.DATAFOLDER)) { systemIO.DirectoryDelete(this.DATAFOLDER, true); } if (systemIO.DirectoryExists(this.TARGETFOLDER)) { systemIO.DirectoryDelete(this.TARGETFOLDER, true); } if (systemIO.DirectoryExists(this.RESTOREFOLDER)) { systemIO.DirectoryDelete(this.RESTOREFOLDER, true); } if (systemIO.FileExists(this.LOGFILE)) { systemIO.FileDelete(this.LOGFILE); } if (systemIO.FileExists(this.DBFILE)) { systemIO.FileDelete(this.DBFILE); } if (systemIO.FileExists($"{this.DBFILE}-journal")) { systemIO.FileDelete($"{this.DBFILE}-journal"); } }
public IList <FileInfo> Directory(string path, bool useCache = true) { if (!_systemio.DirectoryExists(path)) { logger.LogError(path + " not found"); throw new ArgumentException(path + " not found"); } var result = new List <FileInfo>(); if (useCache) { if (!_systemio.DirectoryExists(path + "/.archive")) { _systemio.DirectoryCreateDirectory(path + "/.archive"); } } var files = _systemio.DirectoryGetFiles(path); foreach (var file in files) { if (useCache) { var fileInfo = _systemio.FileInfo(file); if (_systemio.FileExists(path + "/.archive/" + fileInfo.Name)) { result.Add(_fileInfoIO.Load(path + "/.archive/" + fileInfo.Name)); continue; } else { var infoObject = File(file); result.Add(infoObject); _fileInfoIO.Save(infoObject, path + "/.archive/" + fileInfo.Name); } continue; } result.Add(File(file)); } return(result); }
public File(string url, Dictionary <string, string> options) { var uri = new Utility.Uri(url); m_path = uri.HostAndPath; if (options.ContainsKey("auth-username")) { m_username = options["auth-username"]; } if (options.ContainsKey("auth-password")) { m_password = options["auth-password"]; } if (!string.IsNullOrEmpty(uri.Username)) { m_username = uri.Username; } if (!string.IsNullOrEmpty(uri.Password)) { m_password = uri.Password; } if (!System.IO.Path.IsPathRooted(m_path)) { m_path = systemIO.PathGetFullPath(m_path); } if (options.ContainsKey(OPTION_ALTERNATE_PATHS)) { List <string> paths = new List <string> { m_path }; paths.AddRange(options[OPTION_ALTERNATE_PATHS].Split(new string[] { System.IO.Path.PathSeparator.ToString() }, StringSplitOptions.RemoveEmptyEntries)); //On windows we expand the drive letter * to all drives if (!Platform.IsClientPosix) { System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); for (int i = 0; i < paths.Count; i++) { if (paths[i].StartsWith("*:", StringComparison.Ordinal)) { string rpl_path = paths[i].Substring(1); paths.RemoveAt(i); i--; foreach (System.IO.DriveInfo di in drives) { paths.Insert(++i, di.Name[0] + rpl_path); } } } } string markerfile = null; //If there is a marker file, we do not allow the primary target path // to be accepted, unless it contains the marker file if (options.ContainsKey(OPTION_DESTINATION_MARKER)) { markerfile = options[OPTION_DESTINATION_MARKER]; m_path = null; } foreach (string p in paths) { try { if (systemIO.DirectoryExists(p) && (markerfile == null || systemIO.FileExists(systemIO.PathCombine(p, markerfile)))) { m_path = p; break; } } catch { } } if (m_path == null) { throw new UserInformationException(Strings.FileBackend.NoDestinationWithMarkerFileError(markerfile, paths.ToArray()), "NoDestinationWithMarker"); } } m_moveFile = Utility.Utility.ParseBoolOption(options, OPTION_MOVE_FILE); m_forceReauth = Utility.Utility.ParseBoolOption(options, OPTION_FORCE_REAUTH); m_verifyDestinationLength = Utility.Utility.ParseBoolOption(options, OPTION_DISABLE_LENGTH_VERIFICATION); m_hasAutenticated = false; }