Erreur de sauvegarde de fichier avec des chemins virtuels

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

Dans les applications ASP.NET, PdfDocument.SaveAs() peut échouer avec une erreur similaire à celle-ci :

IronPDF could not write to the file '~/PDFFiles/mydocument.pdf'. It may be open in a PDF viewer.
Text

Le message pointe vers un fichier verrouillé, mais la vraie cause est généralement le chemin. IronPDF écrit sur le disque et a besoin d'un chemin physique pleinement qualifié, tandis qu'une valeur comme ~/PDFFiles/file.pdf est un chemin virtuel ASP.NET que le système de fichiers ne peut pas résoudre.

Mappez le chemin virtuel vers un chemin physique

Convertissez le chemin virtuel avant de sauvegarder, en utilisant Server.MapPath() dans ASP.NET Web Forms ou HostingEnvironment.MapPath() ailleurs :

string virtualPath = "~/PDFFiles/mydocument.pdf";
string physicalPath = Server.MapPath(virtualPath); // or HostingEnvironment.MapPath outside Web Forms
pdf.SaveAs(physicalPath);

Un exemple fonctionnel minimal :

var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");
string physicalPath = Server.MapPath("~/App_Data/PDFFiles/output.pdf");
pdf.SaveAs(physicalPath);

Avant de sauvegarder

  • Le répertoire existe : créez le dossier cible et confirmez que l'application a la permission d'écriture sur celui-ci.
  • Fichier non ouvert : assurez-vous que la sortie n'est pas déjà ouverte dans un visualiseur tel qu'Adobe Reader.
  • Emplacements restreints : exécutez avec des permissions suffisantes lors de l'écriture dans des dossiers protégés comme Program Files.
  • Vérifiez le chemin : enregistrez le chemin physique résolu pendant le développement pour confirmer qu'il pointe où vous l'attendez.
Avertissement: Évitez de coder en dur les lettres de lecteur en production ; resolvez les chemins à l'exécution afin que l'application fonctionne dans tous les environnements.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

Lire la suite

Prêt à commencer ?

Nuget Downloads 21,916,531Version :2026.11vient de sortir