/*
* The contents of this file is dual-licensed under 2
* alternative Open Source/Free licenses: LGPL 2.1 or later and
* Apache License 2.0. (starting with JNA version 4.0.0).
*
* You can freely decide which license you want to apply to
* the project.
*
* You may obtain a copy of the LGPL License at:
*
* http://www.gnu.org/licenses/licenses.html
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "LGPL2.1".
*
* You may obtain a copy of the Apache License at:
*
* http://www.apache.org/licenses/
*
* A copy is also included in the downloadable source code package
* containing JNA, in file "AL2.0".
*/
package com.sun.jna.platform.win32.COM;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
public class Helper {
public static final File tempDir = new File(System.getProperty("java.io.tmpdir"));
/**
* Sleep for specified seconds.
*
* @param seconds
*/
public static void sleep(int seconds) {
try {
Thread.sleep(seconds * 1000L);
} catch (InterruptedException ex) {
// Ignore
}
}
/**
* Extract data contained in classpath into a system accessible target file.
*
* @param localPath
* @param target
* @throws IOException
*/
public static void extractClasspathFileToReal(String localPath, File target) throws IOException {
InputStream is = null;
OutputStream os = null;
try {
is = Helper.class.getResourceAsStream(localPath);
os = new FileOutputStream(target);
int read;
byte[] buffer = new byte[20480];
while((read = is.read(buffer)) > 0) {
os.write(buffer, 0, read);
}
} finally {
if(is != null) {
try {
is.close();
} catch(Exception ex) {}
}
if(os != null) {
try {
os.close();
} catch(Exception ex) {}
}
}
}
/**
* Create a temporary file, that does not exist.
*
* @param prefix
* @param suffix
* @return
* @throws IOException
*/
public static File createNotExistingFile(String prefix, String suffix) throws IOException {
File tempFile = Files.createTempFile(prefix, suffix).toFile();
tempFile.delete();
return tempFile;
}
}