private void createPOIFilesDirectory() throws IOException {
        // Create our temp dir only once by double-checked locking
        // The directory is not deleted, even if it was created by this TempFileCreationStrategy
        if (dir == null || !dir.exists()) {
            dirLock.lock();
            try {
                if (dir == null || !dir.exists()) {
                    String tmpDir = System.getProperty(JAVA_IO_TMPDIR);
                    if (tmpDir == null) {
                        throw new IOException("System's temporary directory not defined - set the -D" + JAVA_IO_TMPDIR
                            + " jvm property!");
                    }
                    Path dirPath = Paths.get(tmpDir, POIFILES);
                    dir = Files.createDirectories(dirPath).toFile();
                }
            } finally {
                dirLock.unlock();
            }
            return;
        }
    }
Creates the strategy allowing to set the

@param dir The directory where the temporary files will be created (<code>null</code> to use the default
           directory).
@see Files#createTempFile(Path, String, String, FileAttribute[])
fastexcel-core/src/main/java/cn/idev/excel/util/EasyExcelTempFileCreationStrategy.java