forked from qrakhen/sqript-lib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FileSystem.cs
37 lines (29 loc) · 1.22 KB
/
FileSystem.cs
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
using System;
using Qrakhen.Sqript;
using System.Collections.Generic;
using System.IO;
namespace Qrakhen.SqriptLib {
public class FileInterface : Interface {
public FileInterface() : base("file") { }
public override void Load() {
Define(new Call(read, new string[] { "file" }, Sqript.ValueType.String, "read"));
Define(new Call(write, new string[] { "file", "content" }, Sqript.ValueType.Boolean, "write"));
Define(new Call(Exists, new string[] { "file" }, Sqript.ValueType.Boolean, "exists"));
}
public QValue Exists(Dictionary<string, QValue> parameters) {
return new QValue(File.Exists(parameters["file"].Str()), Qrakhen.Sqript.ValueType.Boolean);
}
public QValue read(Dictionary<string, QValue> parameters) {
if (!File.Exists(parameters["file"].Str())) {
throw new Sqript.Exception("could not find file '" + parameters["file"] + "'");
} else {
return new QValue(File.ReadAllText(parameters["file"].Str()), Qrakhen.Sqript.ValueType.String);
}
}
public QValue write(Dictionary<string, QValue> parameters) {
string content = parameters["content"].GetValue() == null ? "" : parameters["content"].Str();
File.WriteAllText(parameters["file"].Str(), content);
return QValue.True;
}
}
}