예제 #1
0
            public override async Task DeleteAsync(CancellationToken ct, StorageDeleteOption options)
            {
                var intent = NSFileAccessIntent.CreateWritingIntent(_nsUrl, NSFileCoordinatorWritingOptions.ForDeleting);

                using var coordinator = new NSFileCoordinator();
                await coordinator.CoordinateAsync(new[] { intent }, new NSOperationQueue(), () =>
                {
                    using var _ = _nsUrl.BeginSecurityScopedAccess();
                    NSError deleteError;

                    NSFileManager.DefaultManager.Remove(_nsUrl, out deleteError);

                    if (deleteError != null)
                    {
                        throw new UnauthorizedAccessException($"Can't delete file. {deleteError}");
                    }
                });
            }
 internal SecurityScopeStreamWrapper(NSUrl url, Func <Stream> streamBuilder)
 {
     _url           = url;
     _securityScope = _url.BeginSecurityScopedAccess();
     _innerStream   = streamBuilder();
 }
예제 #3
0
            public override Task <BasicProperties> GetBasicPropertiesAsync(CancellationToken ct)
            {
                using var _ = _nsUrl.BeginSecurityScopedAccess();
                var directoryInfo = new DirectoryInfo(Path);

                return(Task.FromResult(new BasicProperties(0UL, directoryInfo.LastWriteTimeUtc)));
            }