code strong> Obtenir une erreur lors de la compilation. Erreur lors du passage de paramètre à getfiles () dans la boucle de Forache, car je passe une matrice de chaîne, mais elle accepte une seule ligne signifie un seul élément. Donc, comment puis-je supprimer les fichiers spécifiques tout autre moyen de supprimer que les fichiers merci p> p>
4 Réponses :
foreach (FileInfo Files in Filenames)
{
di.GetFiles(Files).delete()
}
juste itérer à travers les noms de fichiers et récupérer FileInfo à l'intérieur de la boucle:
foreach (string filename in filenames)
{
FileInfo[] fi = di.GetFiles(filename);
if (fi != null && fi.Length > 0)
{
// Consider if you'd like to check that only one file was found
// This might happen because GetFiles considers its input as a pattern
// However if you are using full file names (which is most likely the case), that shouldn't be necessary
fi[0].Delete();
}
}
Déplacez le nom du nom de fichier à l'intérieur de votre boucle:
var fileNames = FindImageFromDb.Select(x => x.ImageName.ToString()).ToArray();
foreach (var file in di.GetFiles())
{
if (fileNames.Any(f => f == file.Name))
{
file.Delete();
}
}
C'est bon mais problème, c'est que cela obtiendra tous les fichiers de fichiers de répertoire qui prendra du temps si vous disposez de 100 000 fichiers dans mon dossier, il obtiendra d'abord tous les fichiers afin que tous les fichiers suivent, il sera donc possible de démarrer.
Utilisation de Lambda -
var files = di.GetFiles().Where(x => Filenames.Any(y => y == x.Name));
Faire le nom de fichier chèque à l'intérieur de votre boucle
De côté, vous ne semblez pas vérifier qu'un utilisateur est autorisé à accéder à cette fonction, et tout utilisateur autorisé peut effectivement supprimer efficacement tous les fichiers i>. Est-ce correct?
@Neil Vous avez raison mais j'ai un chèque que l'utilisateur enregistré peut accéder à cette action.so qui a raison?
Bien sûr, mais cela signifie-t-il que tout utilisateur connecté peut supprimer tous les fichiers? Par exemple. Je peux supprimer vos fichiers si je connais l'ID du produit.
@Neil Tout utilisateur enregistré a son propre enregistrement que j'ai attribué au maximum 5 fichiers à un utilisateur afin qu'un utilisateur ne puisse accéder à de propres fichiers. Et vous pouvez supprimer un maximum de 5 fichiers par rapport à n'importe quel identifiant de produit.