2013-07-24 18 views
13

Mam dużo plików txt w folderze Zasoby. Jednym z nich jest corner.txt. Mogę uzyskać dostęp do tego pliku za pomocą tego fragmentu kodu:Uzyskaj zasoby za pomocą ciągu znaków

Properties.Resources.corner 

Zachowuję nazwy plików w zmiennych łańcuchowych. Na przykład:

string fileName = "corner.txt"; 

Chcę uzyskać dostęp do tego pliku poprzez:

Properties.Resources.fileName 

Czy to możliwe? Jak mogę uzyskać dostęp?

+0

Nie jest jasne, o co prosisz. Gdzie jest to 'fileName'? Czy jest to wygenerowany zasób? Czy jest to zmienna lokalna, którą zadeklarowałeś w jakiejś całkowicie odłączonej klasie? Co? –

+2

Powiel: http://stackoverflow.com/a/3314213/2524304 – FSou1

+0

Ustawienie tekstu pogrubionego nie powoduje oczyszczenia tego, o co prosisz. Czy nazwa_pliku jest pełną ścieżką lub tylko nazwą pliku? Czy jest to klasa, do której chcesz uzyskać dostęp? – Abbas

Odpowiedz

36

I rozwiązać problem ten fragment kodu:

string st = Properties.Resources.ResourceManager.GetString(tableName); 

Więc nie używaj nazwy pliku, używam łańcucha pliku txt. Jest to przydatne dla mnie.

Wielkie dzięki.

+0

Nie dostałem tego. Czy możesz podać trochę więcej szczegółów – Catbuilts

9

Można użyć Reflection tak:

var type = typeof(Properties.Resources); 
var property = type.GetProperty(fileName, BindingFlags.Static| BindingFlags.NonPublic|BindingFlags.Public); 
var value = property.GetValue(null, null); 

lub użyj ResourceManager takiego:

value = Properties.Resources.ResourceManager.GetObject(fileName, Properties.Resources.Culture); 
Powiązane problemy