764 votes

Comment lire fichier texte ressource incorporée

Comment faire pour lire à l’aide de Streamreader une ressource incorporée (fichier txt) ? (et le retourner sous forme de chaîne) ? Mon script actuel utilise un windows form et TextBox qui permet à l’utilisateur de rechercher et remplacer du texte dans un fichier texte qui n’est pas incorporé.

1312voto

dtb Points 104373

Vous pouvez utiliser de l' Assemblée.GetManifestResourceStream Méthode:

var assembly = Assembly.GetExecutingAssembly();
var resourceName = "MyCompany.MyProduct.MyFile.txt";

using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
    string result = reader.ReadToEnd();
}

resourceName est le nom de l'une des ressources intégrées en assembly. Par exemple, si vous incorporez un fichier texte nommé "MyFile.txt" qui est placé à la racine d'un projet avec l'espace de noms par défaut "MyCompany.MyProduct", alors resourceName est "MyCompany.MyProduct.MyFile.txt". Vous pouvez obtenir une liste de toutes les ressources d'une assemblée à l'aide de l' Assemblée.GetManifestResourceNames Méthode.

92voto

Chris Laplante Points 18060

Jetez un oeil à cette page : http://support.microsoft.com/kb/319292

Fondamentalement, vous utilisez pour obtenir une référence à l’Assembly actuel. Ensuite, utilisez .

Exemple, à partir de la page que j’ai posté :

Note: il faut ajouter `` pour fonctionner

74voto

Andrew Hill Points 473

Dans Visual Studio, vous pouvez directement intégrer l'accès à un fichier de ressources par le biais des Ressources de l'onglet propriétés du Projet ("google Analytics" dans cet exemple). visual studio screen shot - Resources tab

Le fichier résultant peut ensuite être consulté comme un tableau d'octets par

byte[] jsonSecrets = GoogleAnalyticsExtractor.Properties.Resources.client_secrets_reporter;

Si vous avez besoin d'elle comme un ruisseau, puis ( à partir de http://stackoverflow.com/a/4736185/432976 )

Stream stream = new MemoryStream(jsonSecrets)

36voto

Night Walker Points 4598

Lorsque vous avez ajouté le fichier pour les ressources, vous devez sélectionner c’est les modificateurs d’accès comme public, que vous pouvez faire quelque chose comme suit.

CLIST01 est le nom du fichier incorporé.

En fait, vous pouvez aller aux ressources. Designer.cs et voir quel est le nom de l’accesseur Get.

12voto

S_Teo Points 11

Je sais que c’est un ancien sujet, mais c’est ce qui a fonctionné pour moi :

  1. Ajouter le fichier texte pour les ressources du projet
  2. Affectez au modificateur d’accès public, comme l’a montré ci-dessus par Andrew Hill
  3. lire le texte comme ceci :

Le texte que j’ai ajouté aux ressources : « SomeText.txt »

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X