github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/disk_use_windows.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 //go:build windows 13 14 package db 15 16 import ( 17 "syscall" 18 19 "golang.org/x/sys/windows" 20 ) 21 22 func (db *DB) getDiskUse(diskPath string) diskUse { 23 var freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes uint64 24 25 _, _ = syscall.UTF16PtrFromString(diskPath) 26 27 err := windows.GetDiskFreeSpaceEx( 28 syscall.StringToUTF16Ptr(diskPath), 29 &freeBytesAvailable, 30 &totalNumberOfBytes, 31 &totalNumberOfFreeBytes, 32 ) 33 if err != nil { 34 db.logger.WithField("action", "read_disk_use"). 35 WithField("path", diskPath). 36 Errorf("failed to read disk usage: %s", err) 37 } 38 39 return diskUse{ 40 total: totalNumberOfBytes, 41 free: totalNumberOfFreeBytes, 42 avail: freeBytesAvailable, 43 } 44 }