2016-01-27 2 views
1

Я создаю приложение webjob для периодического (запланированного) чтения файлового ресурса azure и файлов процесса. Я использую примеры C# ApI, но не могу понять, как получить метаданные файлов с моим списком каталогов. Я хотел бы сделать что-то столь же простое, как файлы сортировки, измененной датой. У кого-нибудь есть пример получения метаданных с листинговыми файлами.Azure Хранение: Метаданные файлов

FileResultSegment resultSegment = await share.GetRootDirectoryReference().ListFilesAndDirectoriesSegmentedAsync(token); 
results.AddRange(resultSegment.Results); 

Результаты в каких-либо Metadata или свойств, определенных для ниже IListFileItem.

foreach (IListFileItem listItem in results) 
      { 
       // listItem type will be CloudFile or CloudFileDirectory 
       Console.WriteLine("- {0} (type: {1})", listItem.Uri, listItem.GetType()); 
      } 
+0

FYI: Если вы используете сегментированные методы листинга, вам необходимо следовать токенам продолжения или вы не получите полный список результатов. Если вы не хотите использовать токены продолжения вручную, используйте метод ListFilesAndDirectories, а не сегментированную версию, которая вернет итератору, чтобы лениво получить результаты для вас. –

ответ

1

Как насчет отличных результатов?

foreach (var item in results) 
{ 
    if (item is CloudFile) 
    { 
     var cloudFile = (CloudFile) item; 

     // You can now access metadata and properties 
     //cloudFile.Metadata 
     //cloudFile.Properties 
    } 
    else if (item is CloudFileDirectory) 
    { 
     var cloudFileDirectory = (CloudFileDirectory)item; 
     // You can now access metadata and properties 
     //cloudFileDirectory.Metadata 
     //cloudFileDirectory.Properties 
    } 
} 
+0

Свойства все еще не заполнены. Кажется, мне нужно сообщить запрос, что я хочу их, но я не вижу этих параметров. Я надеюсь, что свойства CloudFile не будут установлены только при извлечении файла. – WadeB

1

Строительство на посту Томаса ... Это единственный способ, которым я нашел.

foreach (var item in results) 
{ 
    if (item is CloudFile) 
    { 
     var cloudFile = (CloudFile) item; 
     cloudFile.FetchAttributes(); 

     // You can now access metadata and properties 
     //cloudFile.Metadata 
     //cloudFile.Properties 
    } 
    else if (item is CloudFileDirectory) 
    { 
     var cloudFileDirectory = (CloudFileDirectory)item; 
     // You can now access metadata and properties 
     //cloudFileDirectory.Metadata 
     //cloudFileDirectory.Properties 
    } 
} 
+0

К сожалению, список не возвращает свойства/метаданные для файлов. Это правильное решение. –

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