2010-12-13 2 views
1

у меня есть (более или менее) следующий код:Сохранение файла в папке, созданной пользователем

private static void SaveFolder(MyFolder folder, string location) 
{ 
    string folderName = Path.Combine(location, folder.Name); 
    DirectoryInfo di = Directory.CreateDirectory(folderName); 
    foreach (MyFile childItem in folder.Children) 
    { 
    string fileName = Path.Combine(di.FullName, childItem.Name); 
    byte[] payload = GetFilePayload(childItem); 
    File.WriteAllBytes(fileName, payload); 
    } 
} 

Приложение офис надстройки, работает под пользователем, который является администратором в машине (WinXP)

Я создаю папку без проблем, однако, когда я создаю файлы (строка File.WriteAllBytes), я получаю UnauthorizedAccessException.

Почему я не могу сохранить файл в папке, которую я только что создал?

+0

Что содержит папка. Дети? Скорее всего, это папка iteslf. – TalentTuner

+0

@Saurabh 'folder.Children' содержит объекты типа' MyFile'. –

+0

@Saurabh - да, папка «Дети» содержит элементы, которые можно сохранить в файл. И если я попытаюсь сохранить их в месте расположения, они будут сохранены без проблем. – SWeko

ответ

1

К сожалению, люди, это была глупая ошибка в какой-то другой код, что существенно трансформировали

File.WriteAllBytes(fileName, payload); 

в

File.WriteAllBytes(folderName, payload); 

:(

ОС пытался сохранить файл с тем же именем, что и папка, и WTF является исключением, которое я получал, которые отправляют мне по касательной.

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