Ce face Platform.script
Platform.script returnează un Uri cu schema file spre scriptul pornit, de exemplu file:///home/ana/proiect/bin/main.dart. Cu File.fromUri(Platform.script) obții fișierul, iar cu .parent directorul lui, ca să găsești fișiere care stau lângă script, indiferent din ce director a fost pornit programul.
Platform.executableArguments conține opțiunile date lui dart înainte de numele scriptului, de exemplu --enable-asserts din dart --enable-asserts main.dart. Lista poate conține și opțiuni interne adăugate de lansatorul dart. Argumentele de după numele scriptului nu sunt aici: ele ajung în parametrul List<String> args al lui main.
Într-un program compilat cu dart compile exe, script indică executabilul, iar executableArguments este de obicei gol.
Exemple
Exemplul 1: Numele și schema scriptului
import 'dart:io';
void main() {
final script = Platform.script;
print('Schema: ${script.scheme}');
print('Fișier: ${script.pathSegments.last}');
print('Există pe disc: ${File.fromUri(script).existsSync()}');
}
Rezultat
Schema: file
Fișier: main.dart
Există pe disc: true
Exemplul 2: Programul își citește propriul cod
import 'dart:io';
void main() {
final rinduri = File.fromUri(Platform.script).readAsLinesSync();
print('Scriptul are ${rinduri.length} rânduri.');
print('Primul rând: ${rinduri.first}');
}
Rezultat
Scriptul are 7 rânduri.
Primul rând: import 'dart:io';
Exemplul 3: Opțiunile date lui dart
Programul rulat cu dart --enable-asserts main.dart Ana: opțiunea apare în executableArguments, iar Ana în args.
import 'dart:io';
void main(List<String> args) {
final asserturi = Platform.executableArguments.contains('--enable-asserts');
print('Aserțiuni active: $asserturi');
print('Argumentele programului: $args');
}
Rezultat în terminal
Aserțiuni active: true
Argumentele programului: [Ana]
Greșeli frecvente
- Folosești
Platform.script.pathca o cale de fișier pe Windows: are forma/C:/.... FoloseștePlatform.script.toFilePath()sauFile.fromUri. - Cauți argumentele programului în
executableArguments: ele sunt în parametrul luimain.
Comenzi înrudite
Platform: Clasa Platform dă informații despre sistemul pe care rulează programul: sistemul de operare, variabilele de mediu, procesorul.Directory.current: Directorul curent al programului, față de care se interpretează căile relative; se poate și schimba.File.parent: parent dă directorul în care se află fișierul; absolute dă același fișier cu calea completă, de la rădăcină.Platform.version: Textul cu versiunea Dart care rulează programul, de forma „3.13.5 (stable) (data) on „macos_arm64″”.