feat(VirtualStorageItem): instantiation from filesystem path #9048
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolved / Related Issues
N/A
Details of Changes
Expands the capability of our new VirtualStorageItem impl to support instantiation solely from a filesystem path. For this feature, we leverage the fast FindFirstFileExFromApp() method to get enough item properties to construct the backing ListedItem which is used to set the properties on the IStorageItem contract.
Additionally, a static data field for BasicProperties is created on the VirtualStorageItem class and is set, only initially, from a simple streamed storage file. This makes the present use of VirtualStorageFile (in BaseLayout for drag and drop) more concise.
Lastly, path instantiation will allow us to leverage VirtualStorageItem for all filesystem operations, instead of having to create a StorageFile/Folder n number of times. This will likely speed up paste for storage item operations like move and copy because we inspect the underlying FileDropList (dealing with filesystem paths) instead of the DataPackage itself as of #9035.
Validation
How did you test these changes?
Screenshots (optional)
N/A