Chimney.Shared.UserControls.ChimneyServerUserControl.FolderCrawler C# (CSharp) Method

FolderCrawler() private method

private FolderCrawler ( StorageFolder sf, string folderpath, bool crawl = true, bool addpath = true ) : Task
sf Windows.Storage.StorageFolder
folderpath string
crawl bool
addpath bool
return Task
        async Task<string> FolderCrawler(StorageFolder sf, string folderpath, bool crawl = true, bool addpath = true)
        {
            var files = await sf.GetFilesAsync();
            var folders = await sf.GetFoldersAsync();

            string outs = string.Empty;

            if (string.IsNullOrEmpty(folderpath)) outs += "directory: \n";
            else outs += "directory: " + folderpath + "\n";

            foreach (StorageFile file in files)
            {
                if (file.FileType.ToLower().Equals(".mp3") || 
                    file.FileType.ToLower().Equals(".wav") || 
                    file.FileType.ToLower().Equals(".wma"))
                {
                    SongTag songTag = await SongTag.GetSongTagFromFile(file);

                    if (addpath)
                    {
                        if (string.IsNullOrEmpty(folderpath)) songTag.file = sf.Name + "/" + file.Name; // + "\n";
                        else songTag.file = folderpath + "/" + file.Name; // +"\n";
                    }
                    else {
                        songTag.file = file.Name; // +"\n";
                    }

                    outs += songTag.ToString();
                }
            }

            foreach(StorageFolder folder in folders)
            {
                string fpath = string.Empty;
                if (string.IsNullOrEmpty(folderpath)) fpath = folder.Name;
                else fpath = folderpath + "/" + folder.Name;
                if(crawl) outs += await FolderCrawler(folder, fpath);
            }

            return outs;
        }
ChimneyServerUserControl