디렉토리 / 폴더를 작성하는 방법
테스트를 마치면 System.getProperty("user.home");
새 폴더가없는 경우에만 디렉토리 (디렉토리 이름 "new folder")를 작성해야합니다.
mkdir
Java에서 dem 등원입니다. 구현시 디렉토리가 존재하는지 확인하고 존재하지 않는 경우에만 작성합니다.
디렉토리 / 폴더를 작성하는 방법
테스트를 마치면 System.getProperty("user.home");
새 폴더가없는 경우에만 디렉토리 (디렉토리 이름 "new folder")를 작성해야합니다.
mkdir
Java에서 dem 등원입니다. 구현시 디렉토리가 존재하는지 확인하고 존재하지 않는 경우에만 작성합니다.
답변:
~ 7 년 후, Bozho가 제안한 더 나은 접근 방식으로 업데이트하겠습니다.
new File("/path/directory").mkdirs();
더 이상 사용되지 않음 :
File theDir = new File("new folder");
// if the directory does not exist, create it
if (!theDir.exists()) {
System.out.println("creating directory: " + theDir.getName());
boolean result = false;
try{
theDir.mkdir();
result = true;
}
catch(SecurityException se){
//handle it
}
if(result) {
System.out.println("DIR created");
}
}
if(!theDir.exists())
와 theDir.mkdir()
상태가 변경되었을 수 있습니다뿐만 아니라, 그 사이에서 변경 될 수 있습니다으로 하지 (때문에의 디렉토리를 생성 exists
반환 true
)하고 필요. 메소드의 결과 exists
는 디렉토리 작성 여부를 결정하는 데 사용되어서는 안됩니다. 그냥 호출 mkdir
하면 이미 존재하는 경우 예외가 발생하지 않습니다.
mkdir
디렉토리 호출 과 필요 사이의 상태를 변경할 수 없습니까 ? 다른 프로세스가 디렉토리를 삭제한다는 것을 의미한다고 가정합니다.
mkdirs
소스 코드에서 구현 을 보면 가장 먼저 호출되는 것은 if (exists()) { return false; }
입니다. 구현 자체는 디렉토리가 이미 존재하는지 먼저 확인 하므로이 답변이 잘못 된 것은 아마도 2x 조건을 확인하는 것입니다. 당신이 그것을 만드는 것만 큼 나쁘지 않습니다.
Files
부터는 Benoit Blanchon의 최신 답변과 마찬가지로 메소드를 사용해야합니다 . (이 답변은 Java 7 이전에 작성된 것으로 보입니다.)
new File("/path/directory").mkdirs();
여기에서 "디렉토리"는 만들거나 존재하려는 디렉토리의 이름입니다.
what if the directory is already exists? It would do overwriting? or skip the process.
질문에 대한 답변으로 보완되어야합니다 .
Returns: true if and only if the directory was created, along with all necessary parent directories; false otherwise
Java 7을 사용하면 Files.createDirectories()
.
예를 들어 :
Files.createDirectories(Paths.get("/path/to/directory"));
Unlike the createDirectory method, an exception is not thrown if the directory could not be created because it already exists
directory.toPath()
.
FileUtils # forceMkdir을 사용해 볼 수 있습니다
FileUtils.forceMkdir("/path/directory");
이 라이브러리 에는 유용한 기능이 많이 있습니다.
Java 7 이상 :
Path path = Paths.get("/your/path/string");
Files.createDirectories(path);
createDirectories javadocs에서 작성하기 전에 디렉토리 또는 파일의 존재를 점검 할 필요가없는 것 같습니다 .
존재하지 않는 모든 상위 디렉토리를 먼저 작성하여 디렉토리를 작성합니다. createDirectory 메소드와 달리 디렉토리가 이미 존재하여 디렉토리를 작성할 수없는 경우 예외가 발생하지 않습니다. attrs 매개 변수는 존재하지 않는 디렉토리를 작성할 때 원자 적으로 설정하기위한 선택적 파일 속성입니다. 각 파일 속성은 이름으로 식별됩니다. 동일한 이름의 속성이 둘 이상 배열에 포함 된 경우 마지막 항목을 제외한 모든 속성이 무시됩니다.
이 방법이 실패하면 부모 디렉토리의 전부는 아니지만 일부를 만든 후에 그렇게 할 수 있습니다.
다음 메소드는 원하는 것을 수행해야합니다. mkdir () / mkdirs () 의 반환 값을 확인하십시오.
private void createUserDir(final String dirName) throws IOException {
final File homeDir = new File(System.getProperty("user.home"));
final File dir = new File(homeDir, dirName);
if (!dir.exists() && !dir.mkdirs()) {
throw new IOException("Unable to create " + dir.getAbsolutePath();
}
}
이 질문에 대한 답변이 있지만. 여분의 것을 넣고 싶습니다. 즉, 만들려는 디렉토리 이름을 가진 파일이 있으면 오류를 표시하는 것보다 더 있습니다. 미래 방문자를 위해.
public static void makeDir()
{
File directory = new File(" dirname ");
if (directory.exists() && directory.isFile())
{
System.out.println("The dir with name could not be" +
" created as it is a normal file");
}
else
{
try
{
if (!directory.exists())
{
directory.mkdir();
}
String username = System.getProperty("user.name");
String filename = " path/" + username + ".txt"; //extension if you need one
}
catch (IOException e)
{
System.out.println("prompt for error");
}
}
}
청초한:
import java.io.File;
public class RevCreateDirectory {
public void revCreateDirectory() {
//To create single directory/folder
File file = new File("D:\\Directory1");
if (!file.exists()) {
if (file.mkdir()) {
System.out.println("Directory is created!");
} else {
System.out.println("Failed to create directory!");
}
}
//To create multiple directories/folders
File files = new File("D:\\Directory2\\Sub2\\Sub-Sub2");
if (!files.exists()) {
if (files.mkdirs()) {
System.out.println("Multiple directories are created!");
} else {
System.out.println("Failed to create multiple directories!");
}
}
}
}
자바에서 디렉토리 / 폴더를 만들려면 두 가지 방법이 있습니다.
여기서 makedirectory 메소드는 존재하지 않는 경우 단일 디렉토리를 작성합니다.
File dir = new File("path name");
boolean isCreated = dir.mkdir();
과
File dir = new File("path name");
boolean isCreated = dir.mkdirs();
여기서 makedirectories 메소드는 파일 객체가 나타내는 경로에없는 모든 디렉토리를 만듭니다.
예를 들어 아래 링크를 참조하십시오 (매우 잘 설명되어 있음). 그것이 도움이되기를 바랍니다! https://www.flowerbrackets.com/create-directory-java-program/
호출하는 모든 사람을 지적 File.mkdir()
하거나 객체가 파일이 아닌 디렉토리 File.mkdirs()
라는 것을주의하고 싶었습니다 File
. 예를 들어 mkdirs()
경로 를 호출 하면 원하는 이름 이 아닌 이름 /dir1/dir2/file.txt
의 폴더 가 만들어 file.txt
집니다. 새 파일을 만들고 부모 폴더를 자동으로 만들려면 다음과 같이 할 수 있습니다.
File file = new File(filePath);
if (file.getParentFile() != null) {
file.getParentFile().mkdirs();
}
이것은 하나의 단일 디렉토리 이상을 수행하는 방법입니다. java.io.File을 가져와야합니다.
/ * 아래 코드를 입력하여 didiry dir1을 추가하거나 dir1이 존재하는지 확인하십시오. 존재하지 않는 경우 dir2 및 dir3 * /
File filed = new File("C:\\dir1");
if(!filed.exists()){ if(filed.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filel = new File("C:\\dir1\\dir2");
if(!filel.exists()){ if(filel.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
File filet = new File("C:\\dir1\\dir2\\dir3");
if(!filet.exists()){ if(filet.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }
이 기능을 사용하면 사용자 홈 디렉토리에 디렉토리를 작성할 수 있습니다.
private static void createDirectory(final String directoryName) {
final File homeDirectory = new File(System.getProperty("user.home"));
final File newDirectory = new File(homeDirectory, directoryName);
if(!newDirectory.exists()) {
boolean result = newDirectory.mkdir();
if(result) {
System.out.println("The directory is created !");
}
} else {
System.out.println("The directory already exist");
}
}
생성되었는지 확인하려면 다음을 수행하십시오.
final String path = "target/logs/";
final File logsDir = new File(path);
final boolean logsDirCreated = logsDir.mkdir();
if (!logsDirCreated) {
final boolean logsDirExists = logsDir.exists();
assertThat(logsDirExists).isTrue();
}
beacuse mkDir()
는 부울을 반환하며 변수를 사용하지 않으면 findbugs가이를 부릅니다. 또한 좋지 않습니다 ...
mkDir()
mkDir()
작성하는 경우에만 true를 리턴 합니다. dir이 존재하면 false를 리턴하므로 작성한 dir을 검증하려면 false를 리턴하는 exists()
경우 에만 호출 하십시오 mkDir()
.
assertThat()
결과를 확인하고 exists()
false를 반환 하면 실패합니다 . 다른 것들을 사용하여 생성되지 않은 디렉토리를 처리 할 수 있습니다.
public class Test1 {
public static void main(String[] args)
{
String path = System.getProperty("user.home");
File dir=new File(path+"/new folder");
if(dir.exists()){
System.out.println("A folder with name 'new folder' is already exist in the path "+path);
}else{
dir.mkdir();
}
}
}