Dans ma solution, nous avions un dossier avec quelques fichiers. Tous ces fichiers ont l'action Build "Embedded Resource".
Avec ce code, je peux obtenir un fichier:
Assembly.GetManifestResourceStream(Assembly.GetName().Name + ".Folder.File.txt");
Mais existe-t-il un moyen d'obtenir tout *.txt
fichiers dans ce dossier? Une liste de noms ou une méthode pour les parcourir tous?
Vous pouvez vérifier
Assembly.GetManifestResourceNames()
qui renvoie un tableau de chaînes de toutes les ressources contenues. Vous pouvez ensuite filtrer cette liste pour trouver tous vos *.txt
fichiers stockés en tant que ressources intégrées.
Voir documentation MSDN pour GetManifestResourceNames
pour plus de détails.
Essayez ceci, retourne un tableau avec tous les fichiers .txt dans le répertoire Folder.
private string[] GetAllTxt()
{
var executingAssembly = Assembly.GetExecutingAssembly();
string folderName = string.Format("{0}.Resources.Folder", executingAssembly.GetName().Name);
return executingAssembly
.GetManifestResourceNames()
.Where(r => r.StartsWith(folderName) && r.EndsWith(".txt"))
//.Select(r => r.Substring(folderName.Length + 1))
.ToArray();
}
REMARQUE: décommentez le //.Select(...
ligne afin d'obtenir le nom du fichier.
essayez avec ça. ici vous obtenez tous les fichiers
string[] embeddedResources = Assembly.GetAssembly(typeof(T)).GetManifestResourceNames();
T est bien sûr votre type. vous pouvez donc l'utiliser générique