< prev index next >
src/java.base/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java
Print this page
@@ -483,25 +483,54 @@
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 >