< prev index next >

src/java.base/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java

Print this page

        

*** 483,507 **** --- 483,536 ---- return space; } finally { buffer.release(); } } + + /** + * GetDiskFreeSpace( + * LPCTSTR lpRootPathName, + * LPDWORD lpSectorsPerCluster, + * LPDWORD lpBytesPerSector, + * LPDWORD lpNumberOfFreeClusters, + * LPDWORD lpTotalNumberOfClusters + * ) + */ + static DiskFreeSpace GetDiskFreeSpace(String path) + throws WindowsException + { + NativeBuffer buffer = asNativeBuffer(path); + try { + DiskFreeSpace space = new DiskFreeSpace(); + GetDiskFreeSpace0(buffer.address(), space); + return space; + } finally { + buffer.release(); + } + } + static class DiskFreeSpace { private long freeBytesAvailable; private long totalNumberOfBytes; private long totalNumberOfFreeBytes; + private long bytesPerSector; private DiskFreeSpace() { } public long freeBytesAvailable() { return freeBytesAvailable; } public long totalNumberOfBytes() { return totalNumberOfBytes; } public long totalNumberOfFreeBytes() { return totalNumberOfFreeBytes; } + public long bytesPerSector() { return bytesPerSector; } } private static native void GetDiskFreeSpaceEx0(long lpDirectoryName, DiskFreeSpace obj) throws WindowsException; + private static native void GetDiskFreeSpace0(long lpRootPathName, + DiskFreeSpace obj) + throws WindowsException; + /** * GetVolumePathName( * LPCTSTR lpszFileName, * LPTSTR lpszVolumePathName, * DWORD cchBufferLength
< prev index next >