Le processus ne peut pas accéder au fichier 'chemin du fichier' car il est utilisé par un autre processus.Fichier utilisé par un autre processus après l'utilisation de File.AppendAllText()
j'ai trouvé ces 2 questions
File being used by another process after using File.Create()
et
Does File.AppendAllText close the file after the operation
ceci est une API que j'ai et besoin de sauver chaque requête qui est fournie et le résultat qui va dehors, il pourrait y avoir plus d'une demande qu'un donner le temps mon code
public static void SaveTheRequestAndResponse(string type, SearchRequest searchRequest = null, dynamic result = null)
{
var FilePath = AppDomain.CurrentDomain.BaseDirectory + @"SearchRequest";
bool exists = Directory.Exists(FilePath);
if (!exists)
{
var stream = Directory.CreateDirectory(FilePath);
}
if (type == "request")
{
string Space = ", ";
StringBuilder request = new StringBuilder();
request.Append("Search Id : " + searchRequest.ID);
request.Append(Space + "Company Name : " + searchRequest.CompanyName);
request.Append(Space + "Country Code : " + searchRequest.CountryCode);
request.Append(Space + "Search Type : " + searchRequest.SeacrhType);
request.Append(Space + "Request Time : " + DateTime.Now + Environment.NewLine);
var DataToBeSave = request.ToString();
System.IO.File.AppendAllText(FilePath + @"\" + "FileNAme" + DateTime.Now.ToString("dd-MM-yyyy") + ".txt", DataToBeSave + Environment.NewLine);
}
else
{
string Space = ", ";
StringBuilder SearchResult = new StringBuilder();
SearchResult.Append("The result for Request" + Space);
SearchResult.Append("Search Id : " + searchRequest.ID + Space);
SearchResult.Append("States Code : " + result.StatusCode + Space);
SearchResult.Append("Result Time : " + DateTime.Now + Environment.NewLine);
var DataToBeSave = SearchResult.ToString();
System.IO.File.AppendAllText(FilePath + @"\" + "FileNAme" + DateTime.Now.ToString("dd-MM-yyyy") + ".txt", DataToBeSave + Environment.NewLine);
}
}
je crois comprendre que la File.AppendAllText fermera après l'opération alors pourquoi puis-je obtenir la cette erreur
Lorsque vous écrivez un fichier pour chaque requête Web, vous devez gérer la condition de course qui peut se produire. Si deux demandes sont plus ou moins simultanées, les deux essaieront d'écrire dans le fichier en même temps. – abydal
pas besoin de vérifier si Dir existe. Directory.CreateDirectory retournera un répertoire existant ou en créera un nouveau (si le chemin est valide) –
D'où appelez-vous cette fonction? – martennis