проверить, существует ли папка в datalake с использованием Java - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу проверить, существует ли папка в datalake. Если существует, создайте в нем файл и, если папка не существует, создайте папку, а затем создайте файл внутри папки

    File directory = new File("/Raw/TEST_1/test");
    System.out.println("check if directory exist");
    if (directory.exists() == false) {

        client.createDirectory("/Raw/TEST_1/test");

        System.out.println("Directory created.");

        OutputStream stream = client.createFile("/Raw/TEST_1/test/" + FuFileName, IfExists.OVERWRITE);

    } else {
        System.out.println("Directory exist.");
        OutputStream stream = client.createFile("/Raw/TEST_1/test" + FuFileName, IfExists.OVERWRITE);
    }

} catch (ADLException ex) {
    printExceptionDetails(ex);
} catch (Exception ex) {
    System.out.format(" Exception: %s%n Message: %s%n", ex.getClass().getName(), ex.getMessage());
}

каждый раз, когда directory.exists () выдает мне false, даже если эта папка существует, еслине дает каталогу.exists () вывод true и не выполняет операторы else

1 Ответ

0 голосов
/ 04 ноября 2019

Если вы используете Java 7 или выше , то для доступа к файловой системе рекомендуется использовать java.nio.

Этот очень простой пример может сказать вам, еслиданный путь существует, и если это каталог или что-то еще:

import java.nio.file.Path;
import java.nio.file.Paths;

...

public static void main(String[] args) {
    Path dirPath = Paths.get("/Raw/TEST_1/test");

    if (Files.exists(dirPath)) {
        System.out.println(dirPath.toAbsolutePath().toString() 
                + " exists on the file system");
        if (Files.isDirectory(dirPath)) {
            System.out.println(dirPath.toAbsolutePath().toString() 
                    + " is a directory");
        } else {
            System.err.println(dirPath.toAbsolutePath().toString()
                    + " is not a directory");
        }
    } else {
        System.err.println(dirPath.toAbsolutePath().toString()
                + " does not exist on the file system");
    }
}
...