Получение имен дисковода (в противоположность буквам дисков) в Java

почему требуется имя схемы перед именем таблицы?

, если таблица не совпадает со схемой вашего текущего пользователя (подключенного пользователя), вам необходимо добавить префикс имени схемы, чтобы таблица доступа.

или, альтернативно, ваша целевая таблица должна иметь синоним [public]

12
задан Peter O. 22 March 2013 в 20:50
поделиться

3 ответа

А-ч да, необходимо получить объект FileSystemView и использовать getSystemDisplayName. (Я когда-то реализовал браузер Файловой системы в Java).

Это не прекрасно, хотя, но это получит Вас имя. Из документации:

Название файла, каталога или папки, поскольку это было бы отображено в браузере системного файла. Пример из Windows: каталог "M:\" отображается как "CD-ROM (M:)" реализация по умолчанию получает информацию от класса ShellFolder.

11
ответ дан 2 December 2019 в 07:22
поделиться

На самом деле получить имя дисковода (напр. Локальный диск), необходимо использовать возвраты getSystemTypeDescription. getSystemDisplayName имя тома.

import java.io.File;
import java.util.Arrays;
import java.util.List;
import javax.swing.filechooser.FileSystemView;

public class Test2 {
    public static void main(String args[]){

      List <File>files = Arrays.asList(File.listRoots());
      for (File f : files) {
        String s1 = FileSystemView.getFileSystemView().getSystemDisplayName (f);
        String s2 = FileSystemView.getFileSystemView().getSystemTypeDescription(f);
        System.out.println("getSystemDisplayName : " + s1);
        System.out.println("getSystemTypeDescription : " + s2);
      }
      /* output (French WinXP)

          getSystemDisplayName : 
          getSystemTypeDescription : Disquette 3½ pouces

          getSystemDisplayName : REGA1 (C:)
          getSystemTypeDescription : Disque local

          getSystemDisplayName : 
          getSystemTypeDescription : Lecteur CD

          getSystemDisplayName : My Book (F:)
          getSystemTypeDescription : Disque local
      */
    }
}
10
ответ дан 2 December 2019 в 07:22
поделиться

Другой альтернативой является использование WMI (через JACOB или com4j ).

FileSystemView.getSystemDisplayName не давать вам метку необработанного тома. Это комбинация буквы диска и метки тома со значением по умолчанию, если метка не была установлена.

WMI предоставит вам исходную метку тома, а также некоторую другую информацию, например, является ли диск съемным (что удивительно FileSystemView.isFloppyDrive () не сообщает вам об этом; он буквально означает «это дискета?»)

0
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: