Name |
Ceylon File Platform Module |
---|---|
Category |
SDK
The Ceylon SDK |
Backends | JVM |
Maven coordinates | |
Compatible Ceylon release |
JVM: 1.2.x, 1.3.x (latest) |
Published | Feb 11, 2016 |
Stats |
Downloads (JVM): 1405 Source downloads: 711 |
Authors |
Gavin King |
Description |
API for accessing hierarchical file systems. Clients use
value path = parsePath("/Users/Trompon/Documents"); value child = path.childPath("hello.txt"); value sibling = child.siblingPath("goodbye.txt"); value parent = path.parent; The attribute resource of
To create a file named value filePath = home.childPath("hello.txt"); if (is Nil loc = filePath.resource) { value file = loc.createFile(); try (writer = file.Overwriter()) { writer.writeLine("Hello, World!"); } } else { print("file already exists"); } Note the difference between a To print the contents of the file we just created, we could do this: value filePath = home.childPath("hello.txt"); if (is File file = filePath.resource) { try (reader = file.Reader()) { print(reader.readLine()); } } else { print("file does not exist"); } Now, to rename the file: value filePath = home.childPath("hello.txt"); if (is File file = filePath.resource) { value newPath = filePath.siblingPath("goodbye.txt"); if (is Nil loc = newPath.resource) { file.move(loc); } else { print("target file already exists"); } } else { print("source file does not exist"); } To list the contents of a directory, we have two possibilities. We can list just the direct contents: if (is Directory dir = home.resource) { for (path in dir.childPaths()) { print(path); } } else { print("directory does not exist"); } Alternatively, we can create a object visitor extends Visitor() { file(File file) => print(file.path); } home.visit(visitor); File systems other than the default file system are
supported. For example, a file system for a zip file may be
created using the convenience function value zipPath = home.childPath("myzip.zip"); if (is Nil|File loc = zipPath.resource) { value zipSystem = createZipFileSystem(loc); value entryPath = zipSystem.parsePath("/hello.txt"); if (is Nil entry = entryPath.resource) { value filePath = home.childPath("hello.txt"); if (is File file = filePath.resource) { file.copy(entry); } else { print("source file does not exist"); } } else { print("entry already exists"); } zipSystem.close(); } |
Dependencies |
java.base/7 JDK
|
Usage |
import ceylon.file "1.2.1"; |
Module links |
Members Imported By Home Code repository Issue tracker Browse Download .car No .js archive Download source archive Download module documentation View API documentation |