class NsSearchEngine

La classe NsSearchEngine encapsule les méthodes nécessaires pour effectuer une recherche sur le serveur de sauvegarde.

SearchScope : NsSearchScope

Le type de recherche a effectuer. Par défaut, le mode nsSearchScopeEverywhere est utilisé et la recherche est réalisée dans l'intégralité des données stockées sur le serveur.

BackupID : __int64

L'identificateur de la sauvegarde (NsBackup) dans laquelle rechercher les données si SearchScope est défini à nsSearchScopeSpecificBackup.

UserID : __int64

L'identificateur de l'utilisateur (NsUser) contenant les sauvegardes dans lesquelles rechercher les données si SearchScope est défini à nsSearchScopeSpecificUser.

Limit : long

Le nombre maximal de résultats à renvoyer. Si la valeur 0 est affectée à cette propriété, le nombre de résultats à renvoyer n'est pas limité.

NsSearchResultCollection SearchByFileName(NsConnection Connection, BSTR FileName, VARIANT_BOOL CaseSensitive)

Recherche les fichiers dont le nom contient le terme FileName, selon la sensibilité de la casse définie par CaseSensitive.

NsSearchResultCollection SearchByFilePath(NsConnection Connection, BSTR FilePath, VARIANT_BOOL CaseSensitive)

Recherche les fichiers dont le chemin d'accès relatif contient le terme FilePath, selon la sensibilité de la casse définie par CaseSensitive.

NsSearchResultCollection SearchByFileSizeGreaterThan(NsConnection Connection, __int64 SizeLimit)

Recherche les fichiers dont la taille est supérieure à SizeLimit.

NsSearchResultCollection SearchByFileSizeSmallerThan(NsConnection Connection, __int64 SizeLimit)

Recherche les fichiers dont la taille est inférieure à SizeLimit.

NsSearchResultCollection SearchByFileSizeBetween(NsConnection Connection, __int64 LowLimit, __int64 HighLimit)

Recherche les fichiers dont la taille est comprise entre LowLimit et HighLimit.

NsSearchResultCollection SearchByFileLastModDate(NsConnection Connection, VARIANT LastModDate)

Recherche les fichiers dont la date de dernière modification est plus récente que LastModDate.

NsSearchResultCollection SearchForDeletedFiles(NsConnection Connection)

Recherche les fichiers marqués comme supprimés.

NsSearchResultCollection SearchForDeletedFilesFromDate(NsConnection Connection, VARIANT Date)

Recherche les fichiers marqués comme supprimés depuis la date Date.

Exemple d'utilisation des fonctions de recherche

const THSEARCH_BACKUP_ALL = -2

Set connection = CreateObject("NsAPI.NsConnection")
Set sysutils = CreateObject("NsAPI.NsScriptUtils")

' Fonction affichant la liste des résultats trouvés
Sub DisplayResults(results)
  if results.Count = 0 then
    MsgBox "Aucun résultat trouvé !"
  else
    resultsStr = ""
    for each result in results
      resultsStr = resultsStr & " - " & result.FileName & ", " & sysutils.SizeToStr(result.Size) & ", dans la sauvegarde #" & sysUtils.Int64ToStr(result.BackupID) & vbCrLf
    next
    MsgBox results.count & " résultat(s) trouvé(s) : " & vbCrLf & resultsStr
  end if
End Sub

if connection.ConnectToLocalServer then
  set searchEngine = CreateObject("NsAPI.NsSearchEngine")
  searchEngine.SearchScope = nsSearchScopeEverywhere  ' On cherche dans toutes les sauvegardes (nécessite des droits administrateur)
  searchEngine.Limit = 200 ' 200 résultats maxi !
  
  searchQuery = InputBox("Saisissez une partie d'un nom de fichier à rechercher sur le serveur : ", "Test de l'API UB", "")
  
  if searchQuery <> "" then
    ' Faire une recherche par nom de fichier suivant le nom entré par l'utilisateur
    DisplayResults searchEngine.SearchByFileName(connection, searchQuery, false)
  end if
  
  MsgBox "Recherche des fichiers dont la taille est comprise entre 1 et 2 Ko..."
  ' Faire une recherche par taille
  DisplayResults searchEngine.SearchByFileSizeBetween(connection, 1024, 2048)
  
  MsgBox "Recherche des fichiers dont la date de modification est plus récente que la veille..."
  theDate = DateAdd("d", -1, Now) ' Obtenir la date de la veille
  ' Faire une recherche par date de dernière modification portée par les fichiers
  DisplayResults searchEngine.SearchByFileLastModDate(connection, theDate)

  MsgBox "Recherche des fichiers marqués comme supprimés sur les postes client..."
  ' Rechercher tous les fichiers n'existant plus sur les postes client
  DisplayResults searchEngine.SearchForDeletedFiles(connection)
else
  MsgBox "Connexion au serveur local impossible."
end if