private void listMappedDrives() throws Exception
	{
		synchronized (this)
		{
			subprocess = Runtime.getRuntime().exec("net use");
		}
		BufferedReader in = new BufferedReader(new InputStreamReader(subprocess.getInputStream()));
		String line;
		boolean sawHeader = false;
		while ((line = in.readLine()) != null)
		{
			if (!sawHeader && line.startsWith("-----"))
			{
				sawHeader = true;
			}
			else if (sawHeader)
			{
				int pos = line.indexOf(':');
				if (pos < 2)
				{
					continue;
				}
				if (" \t".indexOf(line.charAt(pos - 2)) == -1)
				{
					continue;
				}
				String driveLetter = line.substring(pos - 1, pos);
				driveLetter = driveLetter.toUpperCase();
				pos = line.indexOf('\\', pos);
				if (pos == -1)
				{
					continue;
				}
				line = line.substring(pos);
				pos = line.indexOf('\t');
				if (pos != -1)
				{
					line = line.substring(0, pos);
				}
				pos = line.indexOf(' ');
				if (pos != -1)
				{
					line = line.substring(0, pos);
				}
				String drivePath = getDrivePath(driveLetter);
				networkDrives.put(drivePath, line);
			}
		}
		subprocess.waitFor();
	}