Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스
- data
- 데이터
- Algorithm
- 17837
- broadcastreceiver
- 제어반전
- ubuntu
- Android
- 16197
- goland
- 알고리즘
- 두 동전
- IntelliJ
- 백준
- Java
- 큐빙
- vscode
- mysql
- intent
- github
- activity
- insert
- 데이터전달
- service
- Jenknis
- spring
- 단축키
- git
- 안드로이드
Archives
- Today
- Total
해보자
[Java] 디렉토리 조회 기능 구현하기 본문
ls명령어
ls 명령을 실행하면 현재 디렉토리에 있는 파일 목록을 출력한다.
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
|
import java.io.File;
public class DirectoryList {
public static void main(String[] args) {
// 1. ls명령어
String path = System.getProperty("user.dir") ; // 현재 프로젝트 파일 디렉토리 경로
File file = new File(path);
String[] strs = file.list();
for(String str : strs)
System.out.println(str);
}
}
|
cs |
결과 :
ls -F 명령어
F 옵션은 지시 문자를 추가로 표시한다.
- 디렉토리명이면 끝에 "/"를 표시하고 파일이면 "*"를 표시하도록 구현
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
|
public class TestShellCommand {
public static void main(String[] args) {
// 2. ls -F, 폴더 명 뒤에는 "/" 표시
String path = System.getProperty("user.dir"); // 현재 프로젝트 파일 디렉토리 경로
File file = new File(path);
String[] strs = file.list();
for(String str : strs) {
String separator = new File(path + "\\" + str).isDirectory() ? "/" : "*";
System.out.println(str + separator);
}
}
}
|
cs |
결과 :
ls -l 명령어
파일의 모드, 링크 수, 소유자, 그룹, 크기(바이트), 최종 수정 시간, 파일명 표시
소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class TestShellCommand {
public static void main(String[] args) {
// 3. ls -l, 권한,
String dirPath = System.getProperty("user.dir"); // 현재 프로젝트 파일 디렉토리 경로
String[] strs = new File(dirPath).list();
for(String str : strs) {
String filePath = dirPath + "\\" + str;
File file = new File(filePath);
// permission
String fileInfo = "";
String isFolder = file.isDirectory() ? "d" : "-";
String perRead = file.canRead() ? "r" : "*";
String perWrite = file.canWrite() ? "w" : "*";
String perExecute = file.canExecute() ? "x" : "*";
// size
long size = isFolder.equals("d") ? 512 : file.length();
/* if ( isFolder.equals("d")) {
try {
Path folderPath = Paths.get(filePath);
size = Files.walk(folderPath)
.filter(p -> p.toFile().isFile())
.mapToLong(p -> p.toFile().length())
.sum();
} catch(IOException e) {
}
}
else
size = file.length();
*/
// owner
String owner = "";
Path pt = Paths.get(filePath);
try {
owner = Files.getOwner(file.toPath()).getName();
} catch ( UnsupportedOperationException | IOException ex) {
}
// last modified time
SimpleDateFormat df = new SimpleDateFormat("MM-dd hh:mm", Locale.KOREA);
String lastModifiedTime = df.format(new Date());
try {
lastModifiedTime = df.format(new Date(Files.getLastModifiedTime(file.toPath()).toMillis()));
} catch(IOException ex) {
}
fileInfo = isFolder + perRead + perWrite + perExecute + " " // 파일 모드
+ owner + " " + size + " " + lastModifiedTime + " ";
System.out.println(fileInfo + str);
}
}
}
|
cs |
결과
'Java' 카테고리의 다른 글
[Java] Data Structure | Deque (0) | 2020.09.08 |
---|---|
[Java] Java8 API의 default 메소드, static 메소드 (0) | 2020.09.07 |
[Java ] Appending ObjectOutputStream (0) | 2020.06.22 |