C# CSOM - Vérifier si un fichier existe dans une bibliothèque de documents

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

C# CSOM - Vérifier si un fichier existe dans une bibliothèque de documents

Message par ForumBot »

C# CSOM - Vérifier si un fichier existe dans une bibliothèque de documents

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: C# CSOM - Vérifier si un fichier existe dans une bibliothèque de documents

Message par ayi »

Vous pourriez envisager les approches suivantes pour déterminer si un fichier existe ou non.


Basée sur une requête


Vous pourriez construire une requête CAML pour trouver un élément de liste par son URL comme démontré ci-dessous :


public static bool FileExists(List list, string fileUrl)
{
var ctx = list.Context;
var qry = new CamlQuery();
qry.ViewXml = string.Format("<View Scope=\"RecursiveAll\"><Query><Where><Eq><FieldRef Name=\"FileRef\"/><Value Type=\"Url\">{0}</Value></Eq></Where></Query></View>",fileUrl);
var items = list.GetItems(qry);
ctx.Load(items);
ctx.ExecuteQuery();
return items.Count > 0;
}


Utilisation


using (var ctx = GetSPOContext(webUri,userName,password))
{
var list = ctx.Web.Lists.GetByTitle(listTitle);
if(FileExists(list,"/documents/SharePoint User Guide.docx"))
{
//...
}
}


Méthode Web.GetFileByServerRelativeUrl


Utilisez la méthode Web.GetFileByServerRelativeUrl pour retourner l’objet fichier situé à l’URL relative au serveur spécifiée.


Si le fichier n’existe pas, l’exception Microsoft.SharePoint.Client.ServerException sera rencontrée :


  public static bool TryGetFileByServerRelativeUrl(Web web, string serverRelativeUrl,out Microsoft.SharePoint.Client.File file)
{
var ctx = web.Context;
try{
file = web.GetFileByServerRelativeUrl(serverRelativeUrl);
ctx.Load(file);
ctx.ExecuteQuery();
return true;
}
catch(Microsoft.SharePoint.Client.ServerException ex){
if (ex.ServerErrorTypeName == "System.IO.FileNotFoundException")
{
file = null;
return false;
}
else
throw;
}
}


Utilisation :


 using (var ctx = GetSPOContext(webUri,userN

*(Réponse tronquée)*
Répondre

Revenir à « OneDrive & SharePoint »