-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
api-needs-workAPI needs work before it is approved, it is NOT ready for implementationAPI needs work before it is approved, it is NOT ready for implementationarea-System.IO
Milestone
Description
Background and motivation
Recently, we have introduced new RandomAccess
type (#24847) which exposes some convenient methods for File IO. To use any of these methods, users need to provide a SafeFileHandle
instance which can be obtained by using File.OpenHandle
(also a new method introduced in .NET 6).
As of today, all these methods support only seekable files. In contrary to FileStream
, SafeFileHandle
does not expose CanSeek
property, so the users can't easily check whether they can use the new RandomAccess
type methods.
API Proposal
namespace Microsoft.Win32.SafeHandles
{
partial class SafeFileHandle
{
public bool CanSeek { get; }
}
}
API Usage
using SafeFileHandle fileHandle = File.OpenHandle(path, FileMode.Open, FileAccess.Read);
long fileLength = fileHandle.CanSeek ? RandomAccess.GetLength(fileHandle) : -1;
Risks
None. The API has been already implemented for both Windows and Unix and it's being used by FileStream
, but it's internal.
Metadata
Metadata
Assignees
Labels
api-needs-workAPI needs work before it is approved, it is NOT ready for implementationAPI needs work before it is approved, it is NOT ready for implementationarea-System.IO