@@ -5,6 +5,7 @@ class FilePickerMacOS extends FilePicker {
55 @override
66 Future <FilePickerResult ?> pickFiles ({
77 String ? dialogTitle,
8+ String ? initialDirectory,
89 FileType type = FileType .any,
910 List <String >? allowedExtensions,
1011 Function (FilePickerStatus )? onFileLoading,
@@ -22,6 +23,7 @@ class FilePickerMacOS extends FilePicker {
2223 final List <String > arguments = generateCommandLineArguments (
2324 escapeDialogTitle (dialogTitle ?? defaultDialogTitle),
2425 fileFilter: fileFilter,
26+ initialDirectory: initialDirectory ?? '' ,
2527 multipleFiles: allowMultiple,
2628 pickDirectory: false ,
2729 );
@@ -50,10 +52,12 @@ class FilePickerMacOS extends FilePicker {
5052 Future <String ?> getDirectoryPath ({
5153 String ? dialogTitle,
5254 bool lockParentWindow = false ,
55+ String ? initialDirectory,
5356 }) async {
5457 final String executable = await isExecutableOnPath ('osascript' );
5558 final List <String > arguments = generateCommandLineArguments (
5659 escapeDialogTitle (dialogTitle ?? defaultDialogTitle),
60+ initialDirectory: initialDirectory ?? '' ,
5761 pickDirectory: true ,
5862 );
5963
@@ -72,6 +76,7 @@ class FilePickerMacOS extends FilePicker {
7276 Future <String ?> saveFile ({
7377 String ? dialogTitle,
7478 String ? fileName,
79+ String ? initialDirectory,
7580 FileType type = FileType .any,
7681 List <String >? allowedExtensions,
7782 bool lockParentWindow = false ,
@@ -85,6 +90,7 @@ class FilePickerMacOS extends FilePicker {
8590 escapeDialogTitle (dialogTitle ?? defaultDialogTitle),
8691 fileFilter: fileFilter,
8792 fileName: fileName ?? '' ,
93+ initialDirectory: initialDirectory ?? '' ,
8894 saveFile: true ,
8995 );
9096
@@ -122,6 +128,7 @@ class FilePickerMacOS extends FilePicker {
122128 String dialogTitle, {
123129 String fileFilter = '' ,
124130 String fileName = '' ,
131+ String initialDirectory = '' ,
125132 bool multipleFiles = false ,
126133 bool pickDirectory = false ,
127134 bool saveFile = false ,
@@ -141,14 +148,20 @@ class FilePickerMacOS extends FilePicker {
141148 argument += 'default name "$fileName " ' ;
142149 }
143150 } else {
144- argument += 'of type {$fileFilter } ' ;
151+ if (fileFilter.isNotEmpty) {
152+ argument += 'of type {$fileFilter } ' ;
153+ }
145154
146155 if (multipleFiles) {
147156 argument += 'with multiple selections allowed ' ;
148157 }
149158 }
150159 }
151160
161+ if (initialDirectory.isNotEmpty) {
162+ argument += 'default location "$initialDirectory " ' ;
163+ }
164+
152165 argument += 'with prompt "$dialogTitle "' ;
153166 arguments.add (argument);
154167
0 commit comments