File.listRoots()
предоставит вам массив корневых каталогов файловой системы.
Если вы работаете в Unix-подобной системе, тогда массив должен содержать одну запись "/"
а в системах Windows вы получите что-то вроде ["C:", "D:", ...]
Редактировать: @chris_l: Я совершенно забыл о мобильных телефонах.Некоторые раскопки показывают, что Android возвращает "/\0\0"
- косую черту, за которой следуют два нулевых байта (предполагается, что это ошибка).Похоже, мы пока избегаем ложных срабатываний благодаря удаче и совпадениям.К сожалению, не удалось найти хорошие данные на других телефонах.
Вероятно, не очень хорошая идея запускать один и тот же код на настольных компьютерах и мобильных телефонах, но это интересно знать.Похоже, все сводится к необходимости проверять определенные функции, а не просто тип системы.