Building a File Explorer

You need to create a custom File Explorer that uses WPF for a customer. Other members of your team work on the user interface of the File Explorer. You are tasked with creating the code that handles all the I/O. The File Explorer should be an abstraction over the file system. It shouldn’t show any drives; instead, it should group files into categories that depend on the location and file type. The categories and locations are given to you by the customer. For example, you have a category “Administration” that contains Microsoft Office documents from multiple locations.

Which classes do you plan to use?
How will you filter the files by specific file types?
Do you need asynchronous code?