From 8bd4da7fdd4e8e74f8d388961ea0853de3c9a215 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 23 Jul 2009 21:28:43 +0200 Subject: Setup for not using fsutil.exe which is probably going to rain a stash of User Action Control dialogs on vista, and has internationalized messages so fails to parse correctly on any non-english windows install. --- src/lombok/installer/WindowsDriveInfo.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/lombok/installer/WindowsDriveInfo.java (limited to 'src/lombok/installer/WindowsDriveInfo.java') diff --git a/src/lombok/installer/WindowsDriveInfo.java b/src/lombok/installer/WindowsDriveInfo.java new file mode 100644 index 00000000..4689e535 --- /dev/null +++ b/src/lombok/installer/WindowsDriveInfo.java @@ -0,0 +1,29 @@ +package lombok.installer; + +import java.util.ArrayList; +import java.util.List; + +public class WindowsDriveInfo { + public List getLogicalDrives() { + int flags = getLogicalDrives0(); + flags = (flags & 0xFF) << 24 | + ((flags >> 8) & 0xFF) << 16 | + ((flags >> 16) & 0xFF) << 8 | + (flags >> 24) & 0xFF; + + List letters = new ArrayList(); + for ( int i = 0 ; i < 26 ; i++ ) { + if ( (flags & (1 << i)) != 0 ) letters.add(Character.toString((char)('A' + i))); + } + + return letters; + } + + private native int getLogicalDrives0(); + + public boolean isFixedDisk(String letter) { + return getDriveType(letter.toUpperCase() + ":\\") == 3L; + } + + private native int getDriveType(String name); +} -- cgit