2015-11-17 3 views
0

Я хотел бы использовать ресурсы в моем решении, передавая переменную строкового Properties.Resources:Вызов ресурсов со строкой переменной

string[] documents = new string[] { "one", "two", "three"}; 
foreach (var document in documents) 
{ 
    extractFile(String.Format(@"C:\temp\{0}.doc",document), properties.Resources.document); 
} 

private void extractFile (string destinationFile, byte[] sourceFile) 
{ 
    File.WriteAllBytes(destinationFile, sourceFile); 
} 

Но я не могу использовать строку «документ» для properties.Resources, как это ,

(«Ресурсы» не содержит определения для «документа»)

Как я могу сделать эту работу?

+0

Это не то, как работает 'foreach'. –

+2

Возможный дубликат [Получить ресурсы со строкой] (http://stackoverflow.com/questions/17828774/get-resources-with-string) – ASh

+0

@ASh: Это не дубликат, а другой - другой. Проблема в другом заключается в том, что они хотят получить имя источника, которое я думаю ...? – Nomistake

ответ

1

Вы можете получить ресурс по имени, как это:

string[] documents = new string[] { "one", "two", "three"}; 
foreach (var document in documents) 
{ 
    var unmanagedMemoryStream = Resources.ResourceManager.GetStream(document); 

    var memoryStream = new MemoryStream(); 
    unmanagedMemoryStream.CopyTo(memoryStream); 
    memoryStream.Position = 0; 
    byte[] bytes = memoryStream.ToArray(); 

    extractFile(String.Format(@"C:\temp\{0}.doc", document), 
       bytes); 
} 

Есть несколько методов, доступных на ResourceManager, которые могли бы быть лучше подходит в зависимости от типа ресурса: GetStream, GetString или GetObject.

+0

Я получаю ошибку, что свойства recources doesnt содержит определение для getstream ... – Nomistake

+0

Обновлено, попробуйте сейчас. – Kvam

+0

Невозможно преобразовать из 'System.IO.UnmanagedMemoryStream' в 'byte []' – Nomistake

0

В качестве решения проблемы я закрепил все необходимые файлы и добавил этот 1 файл к ресурсам. Я извлек его в папку temp и разархивировал его в соответствующие места по мере необходимости ...

Смежные вопросы