보호 할 가능성이 가장 높은 폴더에 폴더 (및 그 안에있는 파일)를 만들려고합니다. 여기 보호 된 폴더에 파일 만들기
내 코드입니다 :package me.pogostick29.audiorpg.data;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
public class DataManager {
private DataManager() { }
private static DataManager instance = new DataManager();
public static DataManager getInstance() {
return instance;
}
private File folder;
private File settings;
public void setup() throws IOException {
String foldername;
String osname = System.getProperty("os.name").toLowerCase();
if (osname.startsWith("mac")) foldername = System.getProperty("user.home") + "/Library/Application Support/AudioRPG";
else if (osname.startsWith("linux")) foldername = System.getProperty("user.home") + "/.AudioRPG/";
else if (osname.startsWith("win")) foldername = System.getenv("APPDATA") + "\\.AudioRPG\\";
else throw new RuntimeException("Unknown OS: " + osname);
folder = new File(foldername);
if (folder.exists()) {
boolean success = false;
try { success = folder.mkdirs(); }
catch (SecurityException e) { FileUtils.forceMkdir(folder); }
if (!success) throw new IOException("Could not create AudioRPG folder.");
}
settings = new File(folder, "settings.txt");
if (!settings.exists()) {
boolean success = false;
try { success = settings.createNewFile(); }
catch (SecurityException e) { throw new IOException("Could not create settings file."); }
if (!success) throw new IOException("Could not create settings file.");
}
}
}
나는 (Mac에서) 코드를 실행하면,이 얻을 : 스레드에서
예외 "주"java.io.IOException 상위를 : 그런 없습니다 파일 또는 디렉토리에서 java.io.UnixFileSystem.createFileExclusively (기본 메서드)에서 java.io.File.createNewFile (File.java:883) me.pogostick29.audiorpg.data.DataManager.setup (DataManager.java : 55) at me.pogostick29.audiorpg.AudioRPG.main (AudioRPG.java:26)
어떻게이 위치에 폴더/파일을 만들 수 있습니까?