You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
File preallocationSize: align Windows and Unix behavior. (#59338)
* File preallocationSize: align Windows and Unix behavior.
This aligns Windows and Unix behavior of preallocationSize for the
intended use-case of specifing the size of a file that will be written.
For this use-case, the expected FileAccess is Write, and the file should be
a new one (FileMode.Create*) or a truncated file (FileMode.Truncate).
Specifing a preallocationSize for other modes, or non-writable files throws ArgumentException.
The opened file will have a length of zero, and is ready to be written to by the user.
If the requested size cannot be allocated, an IOException is thrown.
When the OS/filesystem does not support pre-allocating, preallocationSize is ignored.
* fix pal_io preprocessor checks
* pal_io more fixes
* ctor_options_as.Windows.cs: fix compilation
* Update tests
* tests: use preallocationSize from all public APIs
* pal_io: add back FreeBSD, fix OSX
* tests: check allocated is zero when preallocation is not supported.
* Only throw for not enough space errors
* Fix compilation
* Add some more tests
* Fix ExtendedPathsAreSupported test
* Apply suggestions from code review
Co-authored-by: David Cantú <[email protected]>
* Update System.Private.CoreLib Strings.resx
* PR feedback
* Remove GetPathToNonExistingFile
* Fix compilation
* Skip checking allocated size on mobile platforms.
Co-authored-by: David Cantú <[email protected]>
// But if the underlying filesystem does not support the operation, we just ignore it and treat as a hint.
1082
-
return0;
1083
-
default:
1084
-
assert(result!=EINTR); // it can't happen here as we retry the call on EINTR
1085
-
assert(result!=EBADF); // it can't happen here as this method is being called after a succesfull call to open (with write permissions) before returning the SafeFileHandle to the user
0 commit comments