public static bool Get(ref Archive.ArchivePassword password) { if (!string.Equals(password.path, FileName, StringComparison.OrdinalIgnoreCase)) { return(false); } if (Delay > 0) { Thread.Yield(); Thread.Sleep(Delay); Thread.Yield(); } password.password = Password; return(!string.IsNullOrEmpty(password.password)); }
protected virtual bool GetPassword(ref Archive.ArchivePassword password) { password.password = string.Empty; lock (SyncRoot) { if (!this.Passwords.TryGetValue(password.path, out password.password)) { password.password = this.UserInterface.Prompt( string.Format("Please enter the password for \"{0}\":", password.path.GetName()), UserInterfacePromptFlags.Password ); this.Passwords[password.path] = password.password; } } return(!string.IsNullOrEmpty(password.password)); }