Java: Как узнать, является ли путь полным независимо от ОС

Причина этого заключается в том, что Unity по умолчанию выберет использование конструктора с наибольшим количеством параметров, минуя конструктор по умолчанию.

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

    //public HelpController()
    //    : this(GlobalConfiguration.Configuration)
    //{
    //}

    //public HelpController(HttpConfiguration config)
    //{
    //    Configuration = config;
    //}

    public HelpController()
    {
        Configuration = GlobalConfiguration.Configuration;
    }
17
задан His 22 June 2009 в 02:26
поделиться

1 ответ

Нет.

Есть несколько базовых классов FileSystem (это Java 7, но они также существуют до нее), которые предоставляют isAbsolute (), но они ' не общедоступны - поэтому вы не должны их использовать, и даже если бы вы это сделали, ваш код был бы полон мусора рефлексии - и только "правильные" ОС включены в JRE, так что вы должны в любом случае придется их обходить.

Вот реализации isAbsolute (...) в Java 7, чтобы вы начали. Обратите внимание, что File.getPrefixLength () является закрытым для пакета.

Win32FileSystem :

public boolean isAbsolute(File f) 
{
        int pl = f.getPrefixLength();
        return (((pl == 2) && (f.getPath().charAt(0) == slash))
                || (pl == 3));
}

UnixFileSystem :

public boolean isAbsolute(File f) 
{
        return (f.getPrefixLength() != 0);
}
10
ответ дан 30 November 2019 в 13:46
поделиться
Другие вопросы по тегам:

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