java를 사용하여 현재 작업 디렉토리에 액세스하고 싶습니다.
내 코드 :
String current = new java.io.File( "." ).getCanonicalPath();
System.out.println("Current dir:"+current);
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" +currentDir);
산출:
Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32
C 드라이브가 현재 디렉토리가 아니기 때문에 출력이 올바르지 않습니다.
현재 디렉토리를 얻는 방법?
답변
public class JavaApplication {
public static void main(String[] args) {
System.out.println("Working Directory = " + System.getProperty("user.dir"));
}
}
응용 프로그램이 초기화 된 곳에서 완전한 절대 경로를 인쇄합니다 .
로부터 문서 :
java.io
패키지는 현재 사용자 디렉토리를 사용하여 상대 경로 이름을 확인합니다. 현재 디렉토리는 시스템 특성, 즉 user.dir
JVM이 호출 된 디렉토리로 표시됩니다.
답변
참조 : http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
java.nio.file.Path
and를 사용하여 java.nio.file.Paths
Java가 현재 경로라고 생각하는 것을 보여주기 위해 다음을 수행 할 수 있습니다. 이것은 7 이상이며 NIO를 사용합니다.
Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current relative path is: " + s);
이것은 Current relative path is: /Users/george/NetBeansProjects/Tutorials
내 경우에는 내가 수업을 시작한 곳임을 출력 합니다. 절대 경로를 구성하고 있음을 나타 내기 위해 선행 구분 기호를 사용하지 않고 상대적인 방식으로 경로를 구성하면이 상대 경로가 시작점으로 사용됩니다.
답변
다음은 Java 7 이상에서 작동합니다 ( 설명서 는 여기 참조 ).
import java.nio.file.Paths;
Paths.get(".").toAbsolutePath().normalize().toString();
답변
현재 작업 디렉토리의 경로가 표시됩니다.
Path path = FileSystems.getDefault().getPath(".");
그리고 이것은 작업 디렉토리에 “Foo.txt”라는 파일의 경로를 제공합니다 :
Path path = FileSystems.getDefault().getPath("Foo.txt");
편집 :
현재 디렉토리의 절대 경로를 얻으려면
Path path = FileSystems.getDefault().getPath(".").toAbsolutePath();
* 업데이트 *
현재 작업 디렉토리를 얻으려면 :
Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
답변
이것은 나를위한 해결책입니다
File currentDir = new File("");
답변
나는이 솔루션을 다른 사람들보다 낫고 더 휴대하기 쉬운 주석에서 찾았습니다.
String cwd = new File("").getAbsolutePath();
또는
String cwd = Paths.get("").toAbsolutePath();
답변
c : \ windows \ system32 가 현재 디렉토리가 아니라고 생각하는 이유는 무엇입니까 ? 이 user.dir
특성은 명시 적으로 “사용자의 현재 작업 디렉토리”입니다.
다시 말하면, 명령 행에서 Java를 시작하지 않으면 c : \ windows \ system32는 아마도 CWD 일 것입니다. 즉, 프로그램을 시작하기 위해 두 번 클릭하는 경우 CWD는 두 번 클릭하는 디렉토리가 아닐 수 있습니다.
편집 : 이것은 오래된 창 및 / 또는 Java 버전에만 해당되는 것으로 보입니다.