75 lines
1.3 KiB
Dart
75 lines
1.3 KiB
Dart
import 'dart:io';
|
|
|
|
class PathHelper {
|
|
String pth = "";
|
|
PathHelper({required this.pth});
|
|
|
|
static String combine(String path1, String path2) {
|
|
return path1 + Platform.pathSeparator + path2;
|
|
}
|
|
|
|
static PathHelper builder(String startPath) {
|
|
return PathHelper(pth: startPath);
|
|
}
|
|
|
|
bool exists() {
|
|
return File(build()).existsSync();
|
|
}
|
|
|
|
PathHelper clone() {
|
|
return PathHelper.builder(build());
|
|
}
|
|
|
|
PathHelper resolve(String path2) {
|
|
pth += Platform.pathSeparator + path2;
|
|
return this;
|
|
}
|
|
|
|
PathHelper conditionalResolve(bool flag, String path) {
|
|
if (flag) pth += Platform.pathSeparator + path;
|
|
return this;
|
|
}
|
|
|
|
bool deleteDirectory({bool recursive = false}) {
|
|
Directory dir = new Directory(build());
|
|
try {
|
|
dir.deleteSync(recursive: recursive);
|
|
|
|
return true;
|
|
} catch (E) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool deleteFile() {
|
|
File file = new File(build());
|
|
try {
|
|
file.deleteSync(recursive: true);
|
|
|
|
return true;
|
|
} catch (E) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
PathHelper removeDir() {
|
|
deleteDirectory(recursive: true);
|
|
return this;
|
|
}
|
|
|
|
PathHelper removeFile() {
|
|
deleteFile();
|
|
return this;
|
|
}
|
|
|
|
PathHelper mkdir() {
|
|
Directory dir = new Directory(build());
|
|
dir.createSync(recursive: true);
|
|
|
|
return this;
|
|
}
|
|
|
|
String build() {
|
|
return pth;
|
|
}
|
|
}
|