파일 및 폴더 조작
소개
Netuno 플랫폼의 다국어 백엔드 코드에서는 모든 파일이나 폴더를 조작할 수 있습니다.
조작은 파일과 폴더를 생성, 이름 변경, 삭제하고, 파일 내용을 변경하며, 폴더 내용을 나열하는 것을 포함합니다. 일반적으로 프로그래밍 방식으로 수행해야 하는 작업은 다음과 같습니다.
Netuno 플랫폼에는 애플리케이션 내부 폴더와 파일뿐만 아니라 애플리케이션 외부의 시스템 파일과 폴더도 조작할 수 있는 로우코드 프로그래밍 리소스가 있습니다.
특정 파일을 다뤄야 하는 프로세스를 자동화할 때 유용합니다. 어떻게 하는지 살펴보겠습니다.
파일을 조작할 수 있는 다국어 로우코드 프로그래밍 리소스는 다음과 같습니다:
이 리소스를 통해 다음과 같은 메서드를 사용할 수 있습니다:
.file- 기존 파일..folder- 기존 폴더..path- 기존 여부와 관계없이 파일 또는 폴더일 수 있는 일반 경로.
이 메서드로 File 유형의 객체를 얻으며, 이 객체는 파일, 폴더 및 일반 경로를 조작하는 모든 수단을 제공하므로 다음과 같은 작업을 수행할 수 있습니다:
- 파일 및 폴더 생성.
- 파일 및 폴더 삭제.
- 폴더 내용 나열.
- 파일 및 폴더 이름 변경.
- 파일 데이터 읽기 및 쓰기.
- 폴더와 해당 하위 폴더 및 파일을 재귀적으로 삭제.
애플리케이션
애플리케이션 구조 내에서 파일 및 폴더 조작의 주요 작업을 수행하려면 _app 리소스를 사용합니다:
애플리케이션의 폴더
존재하는 폴더를 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 내폴더 = _app.folder("내/폴더")
const 내폴더 = _app.folder("내/폴더")
내폴더 = _app.folder("내/폴더")
내폴더 = _app.folder("내/폴더")
val 내폴더 = _app.folder("내/폴더")
final 내폴더 = _app.folder("내/폴더")
애플리케이션의 파일
존재하는 파일을 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 내파일 = _app.file("내/폴더/파일.txt")
const 내파일 = _app.file("내/폴더/파일.txt")
내파일 = _app.file("내/폴더/파일.txt")
내파일 = _app.file("내/폴더/파일.txt")
val 내파일 = _app.file("내/폴더/파일.txt")
final 내파일 = _app.file("내/폴더/파일.txt")
애플리케이션의 경로
파일 또는 폴더 경로를 가져오며, 존재 여부와 관계없습니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 새파일 = _app.path("내/폴더/새파일.txt")
const 새파일 = _app.path("내/폴더/새파일.txt")
새파일 = _app.path("내/폴더/새파일.txt")
새파일 = _app.path("내/폴더/새파일.txt")
val 새파일 = _app.path("내/폴더/새파일.txt")
final 새파일 = _app.path("내/폴더/새파일.txt")
스토리지
애플리케이션의 📁 storage 폴더 내에서 파일 및 폴더 조작의 주요 작업을 수행하려면 _storage 리소스를 사용합니다:
스토리지의 폴더
존재하는 폴더를 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더
const 스토리지내폴더 = _storage.filesystem("server", "내/폴더")
const 내폴더 = 스토리지내폴더.folder()
// 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더
const 스토리지내폴더 = _storage.filesystem("server", "내/폴더")
const 내폴더 = 스토리지내폴더.folder()
# 폴더의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더
스토리지내폴더 = _storage.filesystem("server", "내/폴더")
내폴더 = 스토리지내폴더.folder()
# 폴더의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더
스토리지내폴더 = _storage.filesystem("server", "내/폴더")
내폴더 = 스토리지내폴더.folder()
// 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더
val 스토리지내폴더 = _storage.filesystem("server", "내/폴더")
val 내폴더 = 스토리지내폴더.folder()
// 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더
final 스토리지내폴더 = _storage.filesystem("server", "내/폴더")
final 내폴더 = 스토리지내폴더.folder()
스토리지의 파일
존재하는 파일을 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/파일.txt
const 스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
const 파일 = 스토리지파일.file()
// 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/파일.txt
const 스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
const 파일 = 스토리지파일.file()
# 파일의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더/파일.txt
스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
파일 = 스토리지파일.file()
# 파일의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더/파일.txt
스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
파일 = 스토리지파일.file()
// 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/파일.txt
val 스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
val 파일 = 스토리지파일.file()
// 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/파일.txt
final 스토리지파일 = _storage.filesystem("server", "내/폴더", "파일.txt")
final 파일 = 스토리지파일.file()
스토리지의 경로
파일 또는 폴더 경로를 가져오며, 존재 여부와 관계없습니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 새 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/새폴더
const 스토리지폴더 = _storage.filesystem("server", "내/새폴더")
const 폴더 = 스토리지폴더.path()
// 새 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/새파일.txt
const 스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
const 파일 = 스토리지파일.path()
// 새 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/새폴더
const 스토리지폴더 = _storage.filesystem("server", "내/새폴더")
const 폴더 = 스토리지폴더.path()
// 새 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/새파일.txt
const 스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
const 파일 = 스토리지파일.path()
# 새 폴더의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/새폴더
스토리지폴더 = _storage.filesystem("server", "내/새폴더")
폴더 = 스토리지폴더.path()
# 새 파일의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더/새파일.txt
스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
파일 = 스토리지파일.path()
# 새 폴더의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/새폴더
스토리지폴더 = _storage.filesystem("server", "내/새폴더")
폴더 = 스토리지폴더.path()
# 새 파일의 실제 경로는 다음과 같습니다:
# storage/filesystem/server/내/폴더/새파일.txt
스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
파일 = 스토리지파일.path()
// 새 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/새폴더
val 스토리지폴더 = _storage.filesystem("server", "내/새폴더")
val 폴더 = 스토리지폴더.path()
// 새 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/새파일.txt
val 스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
val 파일 = 스토리지파일.path()
// 새 폴더의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/새폴더
final 스토리지폴더 = _storage.filesystem("server", "내/새폴더")
final 폴더 = 스토리지폴더.path()
// 새 파일의 실제 경로는 다음과 같습니다:
// storage/filesystem/server/내/폴더/새파일.txt
final 스토리지파일 = _storage.filesystem("server", "내/폴더", "새파일.txt")
final 파일 = 스토리지파일.path()
운영 체제
운영 체제의 어느 위치에서든 파일 및 폴더 조작의 주요 작업을 수행하려면 _os 리소스를 사용합니다:
운영 체제의 폴더
존재하는 폴더를 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 내폴더 = _os.folder("/tmp/내/폴더")
const 내폴더 = _os.folder("/tmp/내/폴더")
내폴더 = _os.folder("/tmp/내/폴더")
내폴더 = _os.folder("/tmp/내/폴더")
val 내폴더 = _os.folder("/tmp/내/폴더")
final 내폴더 = _os.folder("/tmp/내/폴더")
운영 체제의 파일
존재하는 파일을 가져오도록 보장합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 내파일 = _os.file("/tmp/내/폴더/파일.txt")
const 내파일 = _os.file("/tmp/내/폴더/파일.txt")
내파일 = _os.file("/tmp/내/폴더/파일.txt")
내파일 = _os.file("/tmp/내/폴더/파일.txt")
val 내파일 = _os.file("/tmp/내/폴더/파일.txt")
final 내파일 = _os.file("/tmp/내/폴더/파일.txt")
운영 체제의 경로
파일 또는 폴더 경로를 가져오며, 존재 여부와 관계없습니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 새파일 = _os.path("/tmp/내/폴더/새파일.txt")
const 새파일 = _os.path("/tmp/내/폴더/새파일.txt")
새파일 = _os.path("/tmp/내/폴더/새파일.txt")
새파일 = _os.path("/tmp/내/폴더/새파일.txt")
val 새파일 = _os.path("/tmp/내/폴더/새파일.txt")
final 새파일 = _os.path("/tmp/내/폴더/새파일.txt")
폴더 생성
mkdir 메서드는 폴더를 생성합니다.
다음 예에서는 애플리케이션 루트에 지정된 폴더를 생성합니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더 = _app.path("임시")
폴더.mkdir()
const 폴더 = _app.path("임시")
폴더.mkdir()
폴더 = _app.path("임시")
폴더.mkdir()
폴더 = _app.path("임시")
폴더.mkdir()
val 폴더 = _app.path("임시")
폴더.mkdir()
final 폴더 = _app.path("임시")
폴더.mkdir()
기존 폴더 안에 하위 폴더를 생성하려면 폴더 계층을 /로 구분한 전체 경로를 지정합니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
const 하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
val 하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
final 하위폴더 = _app.path("임시/기타")
하위폴더.mkdir()
mkdirs는 이전 폴더 및/또는 하위 폴더가 없으면 생성하므로, 애플리케이션에 폴더 구조를 만들 수 있습니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
const 폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
val 폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
final 폴더경로 = _app.path("임시/가/나/다")
폴더경로.mkdirs()
_storage 리소스에는 경로 존재 여부를 확인하고 없으면 생성하는 ensurePath 메서드가 있습니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
// 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
const 파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
// 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
# 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
# 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
val 파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
// 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
final 파일 = _storage.filesystem(
"public",
"임시/하위폴더",
"파일.txt"
)
// 폴더 구조가 없으면 생성합니다:
파일.ensurePath()
따라서 ensurePath는 폴더 구조가 존재하도록 보장합니다.
파일 및 폴더 삭제
delete 메서드로 폴더와 파일을 모두 제거할 수 있으며, 폴더는 비어 있어야 합니다. 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 빈 폴더를 삭제합니다:
const 빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
// 파일을 삭제합니다:
const 파일 = _app.file("폴더/파일.txt")
파일.delete()
// 경로, 빈 폴더 또는 파일을 삭제합니다:
const 경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
// 빈 폴더를 삭제합니다:
const 빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
// 파일을 삭제합니다:
const 파일 = _app.file("폴더/파일.txt")
파일.delete()
// 경로, 빈 폴더 또는 파일을 삭제합니다:
const 경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
# 빈 폴더를 삭제합니다:
빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
# 파일을 삭제합니다:
파일 = _app.file("폴더/파일.txt")
파일.delete()
# 경로, 빈 폴더 또는 파일을 삭제합니다:
경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
# 빈 폴더를 삭제합니다:
빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
# 파일을 삭제합니다:
파일 = _app.file("폴더/파일.txt")
파일.delete()
# 경로, 빈 폴더 또는 파일을 삭제합니다:
경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
// 빈 폴더를 삭제합니다:
val 빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
// 파일을 삭제합니다:
val 파일 = _app.file("폴더/파일.txt")
파일.delete()
// 경로, 빈 폴더 또는 파일을 삭제합니다:
val 경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
// 빈 폴더를 삭제합니다:
final 빈폴더 = _app.folder("폴더/비어있음")
빈폴더.delete()
// 파일을 삭제합니다:
final 파일 = _app.file("폴더/파일.txt")
파일.delete()
// 경로, 빈 폴더 또는 파일을 삭제합니다:
final 경로 = _app.path("폴더1/파일-또는-빈폴더")
경로.delete()
deleteAll을 사용하면 모든 파일, 폴더 및 하위 폴더를 재귀적으로 삭제할 수 있습니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
const 빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
// 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
// 하위 폴더와 파일 포함:
const 경로 = _app.path("경로/폴더")
경로.deleteAll()
// 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
const 빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
// 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
// 하위 폴더와 파일 포함:
const 경로 = _app.path("경로/폴더")
경로.deleteAll()
# 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
# 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
# 하위 폴더와 파일 포함:
경로 = _app.path("경로/폴더")
경로.deleteAll()
# 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
# 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
# 하위 폴더와 파일 포함:
경로 = _app.path("경로/폴더")
경로.deleteAll()
// 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
val 빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
// 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
// 하위 폴더와 파일 포함:
val 경로 = _app.path("경로/폴더")
경로.deleteAll()
// 폴더와 모든 콘텐츠를 재귀적으로 삭제합니다:
final 빈폴더 = _app.folder("폴더/예제")
빈폴더.deleteAll()
// 폴더 경로와 모든 내부 콘텐츠를 삭제합니다,
// 하위 폴더와 파일 포함:
final 경로 = _app.path("경로/폴더")
경로.deleteAll()
폴더 내부의 파일만 삭제하고 하위 폴더의 항목은 삭제하지 않으려면 deleteFiles를 사용합니다. 특정 확장자를 가진 파일만 제거하려면 확장자를 받을 수 있습니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 폴더 내부의 파일만 삭제합니다:
const 폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
// 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
const 경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
// 폴더 내부의 파일만 삭제합니다:
const 폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
// 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
const 경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
# 폴더 내부의 파일만 삭제합니다:
폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
# 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
# 폴더 내부의 파일만 삭제합니다:
폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
# 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
// 폴더 내부의 파일만 삭제합니다:
val 폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
// 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
val 경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
// 폴더 내부의 파일만 삭제합니다:
final 폴더 = _app.folder("폴더/예제")
폴더.deleteFiles()
// 폴더 내부에서 JPG 확장자를 가진 파일만 삭제합니다:
final 경로 = _app.path("경로/폴더")
경로.deleteFiles("jpg")
파일만 재귀적으로 삭제하고 폴더 구조를 유지하려면 deleteAllFiles를 사용합니다. 특정 유형의 파일만 제거하려면 확장자를 받을 수도 있습니다. 다음 두 예를 참고하세요:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
// 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
const 폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
// 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
const 경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
// 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
const 폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
// 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
const 경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
# 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
# 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
# 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
# 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
// 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
val 폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
// 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
val 경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
// 폴더와 하위 폴더 내의 모든 파일을 삭제합니다:
final 폴더 = _app.folder("폴더/예제")
폴더.deleteAllFiles()
// 폴더와 하위 폴더 내에서 JPG 확장자를 가진 모든 파일을 삭제합니다:
final 경로 = _app.path("경로/폴더")
경로.deleteAllFiles("jpg")
이름 바꾸기 또는 이동
폴더를 이동하는 것은 이름을 바꾸는 것과 같습니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더 = _app.folder("임시")
폴더.renameTo("테스트")
const 폴더 = _app.folder("임시")
폴더.renameTo("테스트")
폴더 = _app.folder("임시")
폴더.renameTo("테스트")
폴더 = _app.folder("임시")
폴더.renameTo("테스트")
val 폴더 = _app.folder("임시")
폴더.renameTo("테스트")
final 폴더 = _app.folder("임시")
폴더.renameTo("테스트")
폴더 이름을 바꾸고 폴더 계층에서 수준을 변경하는 것은 폴더를 이동하는 것과 같습니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
const 폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
val 폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
final 폴더 = _app.folder("임시/가/나")
폴더.renameTo("테스트/z")
하위 폴더의 이름을 바꾸지 않고 이동하려면 renameTo 메서드에 새 경로를 지정하면 됩니다:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
const 폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
val 폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
final 폴더 = _app.folder("테스트/다른")
폴더.renameTo("새이름")
파일에 콘텐츠 저장
파일에 콘텐츠를 생성하는 것은 OutputStream 유형의 객체를 제공하는 output 메서드를 통해 이루어집니다.
output에 데이터를 쓰려면 printAndClose 메서드를 사용하며, 이 메서드는 파일에 콘텐츠를 출력하고 파일을 닫아 내용을 저장합니다.
텍스트 파일 쓰기
텍스트 콘텐츠가 있는 파일을 만드는 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
_app.path("임시").mkdir()
const 쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
_app.path("임시").mkdir()
const 쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
_app.path("임시").mkdir()
쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
_app.path("임시").mkdir()
쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
_app.path("임시").mkdir()
val 쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
_app.path("임시").mkdir()
final 쓰기 = _app.path("임시/파일.txt").output()
쓰기.printAndClose("여기에 내 텍스트...")
output을 사용할 때마다 새 파일이 생성되므로, 코드를 다시 실행하면 파일이 다시 생성됩니다.
JSON 파일 쓰기
JSON 데이터를 파일에 저장하는 방법:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
_app.path("임시").mkdir()
const 쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("임시").mkdir()
const 쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("임시").mkdir()
쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("임시").mkdir()
쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("임시").mkdir()
val 쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
_app.path("임시").mkdir()
final 쓰기 = _app.path("임시/고객.json").output()
쓰기.printAndClose(
_val.map()
.set("이름", "마리아 조아키나")
.set(
"기록",
_val.list()
.add(1).add(2).add(3)
)
.toJSON()
)
들여쓰기된 JSON, 즉 여러 줄로 서식 지정되고 탭된 JSON을 생성하려면 예를 들어 .toJSON(4)처럼 들여쓰기에 사용할 공백 수를 전달할 수 있습니다.
Values의 toJSON 메서드에 대한 자세한 내용은...
파일 콘텐츠 읽기
파일 콘텐츠를 가져오는 것은 InputStream 유형의 객체를 제공하는 input 메서드를 통해 이루어집니다.
input의 데이터를 읽으려면 readAllAndClose 메서드를 사용하며, 이 메서드는 파일 콘텐츠 읽기를 처리하고 파일을 닫습니다.
텍스트 파일 읽기
파일을 읽고 텍스트 콘텐츠를 얻는 예:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 파일 = _app.file("임시/파일.txt")
const 읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
const 파일 = _app.file("임시/파일.txt")
const 읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
파일 = _app.file("임시/파일.txt")
읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
파일 = _app.file("임시/파일.txt")
읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
val 파일 = _app.file("임시/파일.txt")
val 읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
final 파일 = _app.file("임시/파일.txt")
final 읽기 = 파일.input()
_log.info(읽기.readAllAndClose())
JSON 파일 읽기
파일에서 얻은 JSON 데이터를 처리하는 방법:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 파일 = _app.file("임시/파일.txt")
const 읽기 = 파일.input()
const 데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
const 파일 = _app.file("임시/파일.txt")
const 읽기 = 파일.input()
const 데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
파일 = _app.file("임시/파일.txt")
읽기 = 파일.input()
데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
파일 = _app.file("임시/파일.txt")
읽기 = 파일.input()
데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
val 파일 = _app.file("임시/파일.txt")
val 읽기 = 파일.input()
val 데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
final 파일 = _app.file("임시/파일.txt")
final 읽기 = 파일.input()
final 데이터 = _val.fromJSON(읽기.readAllAndClose())
_log.info("파일 데이터:", 데이터)
Val리소스의 fromJSON 메서드에 대한 자세한 내용은...
스토리지의 특이 사항
스토리지 리소스에는 직접 사용할 수 있는 몇 가지 메서드가 있습니다.
예를 들어 스토리지를 통해 다음에 접근할 수 있습니다:
즉, input 또는 output으로 작업하기 위해 file이나 path를 가져올 필요가 없습니다.
스토리지에 텍스트 파일 쓰기
파일에 대한 스토리지를 시작하면 데이터를 처리하고 읽을 수 있는 OutputStream 객체의 인스턴스를 얻는 output 메서드를 사용하여 쓰기를 수행할 수 있습니다.
따라서 OutputStream과 함께 printAndClose 메서드를 사용하면 파일에 텍스트(string)를 쓰고 파일을 닫습니다.
다음 예를 참고하세요:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
const 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
val 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
final 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
텍스트.ensurePath()
텍스트.output().printAndClose("여기에 내 텍스트...")
스토리지에서 텍스트 파일 읽기
파일에 대한 스토리지를 시작하면 데이터를 처리하고 읽을 수 있는 InputStream 객체의 인스턴스를 얻는 input 메서드를 사용하여 읽기를 수행할 수 있습니다.
따라서 InputStream과 함께 readAllAndClose 메서드를 사용하면 전체 파일을 읽고 파일을 닫으며, 데이터를 텍스트(string)로 반환합니다.
다음 예를 참고하세요:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
const 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
val 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
final 텍스트 = _storage.filesystem("server", "임시", "파일.txt")
_log.info(텍스트.input().readAllAndClose())
스토리지에 임의 파일 생성
_storage 리소스는 newRandomFile 메서드로 임의의 파일 이름을 생성할 수 있습니다.
폴더 경로에 대한 스토리지를 시작해야 하며, newRandomFile 메서드를 실행할 때 원하는 파일 확장자를 전달합니다.
이 메서드는 초기 폴더에서 사용할 수 있도록 자동으로 생성된 임의 파일에 대한 새 스토리지 인스턴스를 반환합니다.
확장자가 TXT인 임의 이름의 파일을 생성하는 방법:
- JavaScript
- TypeScript
- Python
- Ruby
- Kotlin
- Groovy
const 폴더 = _storage.filesystem("server", "임시")
const 파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
const 폴더 = _storage.filesystem("server", "임시")
const 파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
폴더 = _storage.filesystem("server", "임시")
파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
폴더 = _storage.filesystem("server", "임시")
파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
val 폴더 = _storage.filesystem("server", "임시")
val 파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
final 폴더 = _storage.filesystem("server", "임시")
final 파일 = 폴더.newRandomFile("txt")
파일.output().printAndClose("여기에 내 텍스트...")
결론
Netuno의 다국어 로우코드 프레임워크를 사용하면 폴더와 파일의 모든 주요 작업을 직접 수행할 수 있습니다.
다음에서 파일과 폴더를 조작하기 위한 특정 리소스를 사용할 때:
_app- 애플리케이션_storage- 애플리케이션 스토리지_os- 운영 체제
모범 사례와 구성 측면에서 스토리지 사용을 우선해야 하며, 예외는 특별한 경우에만 엄격히 필요한 경우로 한정해야 합니다.
Netuno는 서비스 처리 종료 시 입력과 출력을 자동으로 닫지만, 모범 사례에 따라 항상 닫으려고 해야 합니다.