public BlobSearchResult Search(string folderUrl, string keyword)
{
var retVal = new BlobSearchResult();
var storagePath = _storagePath;
folderUrl = folderUrl ?? _basePublicUrl;
var storageFolderPath = GetAbsoluteStoragePathFromUrl(folderUrl);
var directories = String.IsNullOrEmpty(keyword) ? Directory.GetDirectories(storageFolderPath) : Directory.GetDirectories(storageFolderPath, "*" + keyword + "*", SearchOption.AllDirectories);
foreach (var directory in directories)
{
var directoryInfo = new DirectoryInfo(directory);
retVal.Folders.Add(new BlobFolder
{
Name = Path.GetFileName(directory),
Url = GetAbsoluteUrlFromPath(directory),
ParentUrl = GetAbsoluteUrlFromPath(directoryInfo.Parent.FullName)
});
}
var files = String.IsNullOrEmpty(keyword) ? Directory.GetFiles(storageFolderPath) : Directory.GetFiles(storageFolderPath, "*" + keyword + "*.*", SearchOption.AllDirectories);
foreach (var file in files)
{
var fileInfo = new FileInfo(file);
retVal.Items.Add(new BlobInfo
{
Url = GetAbsoluteUrlFromPath(file),
ContentType = MimeTypeResolver.ResolveContentType(fileInfo.Name),
Size = fileInfo.Length,
FileName = fileInfo.Name,
ModifiedDate = fileInfo.LastWriteTimeUtc
});
}
return retVal;
}