Comments (7)
@SteveBenz, @wilbaker
I've had a while to think about this and I just don't agree. Specifying .
is an error. The only case where .
makes sense to specify a relative path is when you're using a command shell to specify a path relative to the current directory. "Current directory" isn't a file system concept, so it doesn't belong in ProjFS.
I'm going to change this fix to an exception. The VirtualizationInstance
constructor already throws exceptions, so adding a new one isn't a big deal.
from projfs-managed-api.
@wilbaker I'm willing to make this change since I plan to also allow the native API to accept .
. It will mean that for a while the native and managed APIs behave slightly differently, but I don't think it is enough of a difference to be a big deal.
Besides, if people coming from a non file-system background assume .
is valid and that causes them to, without warning, not get any notifications, that is problematic.
from projfs-managed-api.
For various reasons (mainly to do with us having originally approached ProjFS from the mindset that a provider is an extension of the file system) the underlying native API expects "" to mean the virtualization root. I can add code to the managed wrapper that converts .
to "" for consumption by the native API.
I'll also file a work item to add support for .
to the native API to make things simpler for native developers in the future.
from projfs-managed-api.
For various reasons (mainly to do with us having originally approached ProjFS from the mindset that a provider is an extension of the file system) the underlying native API expects "" to mean the virtualization root. I can add code to the managed wrapper that converts . to "" for consumption by the native API.
FWIW I think it would be OK to say that the managed API will match the native API here not convert .
to "".
Historically the goal has been to keep the managed layer thin and consistent with the managed API, and I'm not sure it's good to have them start diverging when it comes to core behavior/functionality.
from projfs-managed-api.
I'm happy with throwing an exception if the user passes "." or even ".\path". Much better than silently getting no notifications, and I see that you've updated the parameter's documentation to clearly call it out.
But the fix for #26 doesn't look right to me. I could have a folder called ".git" and want to specifically see activity within that folder but not other folders. Looks to me like if I pass ".git" as a folder name, it'll fail and there'll be no way to specifically monitor that.
from projfs-managed-api.
#26 now throws an exception only for paths that are exactly .
or that start with .\
.
from projfs-managed-api.
@SteveBenz @wilbaker
The nuget feed has been updated with these changes.
from projfs-managed-api.
Related Issues (20)
- PrjGetOnDiskFileState not available? HOT 4
- How to tell if a tombstone exists for a file path? HOT 7
- Is there a way to clean up ProjFS placeholders/markup without deleting everything? HOT 2
- Pure virtual file system (without any kind of caching/hydrating) HOT 4
- Is there a way to retrieve the ProviderId and ContentId from a placeholder? HOT 3
- HResult.Handle result code from WriteFileData() and left a hydrated placeholder in a bad state? HOT 2
- After closing SimpleProviderManager artifacts are left behind in the virtual root HOT 1
- PreConvertToFull handler not notified HOT 1
- Revert full state file keeping it hydrated HOT 2
- Document C++ runtime as prerequisite HOT 3
- Proper way to handle renaming placeholder files HOT 3
- Odd file behavior in virtual branches, perhaps after installing Windows Updates HOT 13
- The build agent needs an upgrade to build against the new ProjFS API
- DirectoryEnumerationResults.Add symlink override is incompatible with EnumerateFileSystemInfos on .NET Framework HOT 1
- Why are NuGet packages for this library no longer updated? HOT 1
- This repo is missing important files
- Compiling with Visual Studio 2022 : Change ProjectedFSLib.Managed.Props HOT 1
- Section on BadImageFormatExceptions also applies to FileNotFoundExceptions
- windows 10 projected file system issues
- Upgrade to .NET 8 from .NET Core 3.1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from projfs-managed-api.