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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| Future<Directory?>? _tempDirectory; Future<Directory?>? _appSupportDirectory; Future<Directory?>? _appLibraryDirectory; Future<Directory?>? _appDocumentsDirectory; Future<Directory?>? _externalDocumentsDirectory; Future<List<Directory>?>? _externalStorageDirectories; Future<List<Directory>?>? _externalCacheDirectories; Future<Directory?>? _downloadDirectory; void _requestTempDirectory() { setState(() { _tempDirectory = getTemporaryDirectory(); }); } Widget _buildDirectory(BuildContext context, AsyncSnapshot<Directory?> snapshot) { Text text = const Text(''); if (snapshot.connectionState == ConnectionState.done) { if (snapshot.hasError) { text = Text('Error: ${snapshot.error}'); } else if (snapshot.hasData) { text = Text('path: ${snapshot.data!.path}'); } else { text = const Text('path unavailable'); } } return Padding(padding: const EdgeInsets.all(16.0), child: text); }
Widget _buildDirectories(BuildContext context, AsyncSnapshot<List<Directory>?> snapshot) { Text text = const Text(''); if (snapshot.connectionState == ConnectionState.done) { if (snapshot.hasError) { text = Text('Error: ${snapshot.error}'); } else if (snapshot.hasData) { final String combined = snapshot.data!.map((Directory d) => d.path).join(', '); text = Text('paths: $combined'); } else { text = const Text('path unavailable'); } } return Padding(padding: const EdgeInsets.all(16.0), child: text); }
void _requestAppDocumentsDirectory() { setState(() { _appDocumentsDirectory = getApplicationDocumentsDirectory(); }); }
void _requestAppSupportDirectory() { setState(() { _appSupportDirectory = getApplicationSupportDirectory(); }); }
void _requestAppLibraryDirectory() { setState(() { _appLibraryDirectory = getLibraryDirectory(); }); }
void _requestExternalStorageDirectory() { setState(() { _externalDocumentsDirectory = getExternalStorageDirectory(); }); }
void _requestExternalStorageDirectories(StorageDirectory type) { setState(() { _externalStorageDirectories = getExternalStorageDirectories(type: type); }); }
void _requestExternalCacheDirectories() { setState(() { _externalCacheDirectories = getExternalCacheDirectories(); }); } void _requestDownloadDirectory() { setState(() { _downloadDirectory = getDownloadsDirectory(); }); }
Center( child: ListView( children: <Widget>[ Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: const Text('Get Temporary Directory'), onPressed: _requestTempDirectory,),), FutureBuilder<Directory?>(future: _tempDirectory, builder: _buildDirectory),
Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: const Text('Get Application Documents Directory'), onPressed: _requestAppDocumentsDirectory,),), FutureBuilder<Directory?>(future: _appDocumentsDirectory, builder: _buildDirectory),
Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: const Text('Get Application Support Directory'), onPressed: _requestAppSupportDirectory,),), FutureBuilder<Directory?>(future: _appSupportDirectory, builder: _buildDirectory),
Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: const Text('Get Application Library Directory'), onPressed: _requestAppLibraryDirectory,)), FutureBuilder<Directory?>(future: _appLibraryDirectory, builder: _buildDirectory),
Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: Text(Platform.isIOS ? 'External directories are unavailable on iOS' : 'Get External Storage Directory'), onPressed: Platform.isIOS ? null : _requestExternalStorageDirectory,),), FutureBuilder<Directory?>(future: _externalDocumentsDirectory, builder: _buildDirectory),
Column(children: <Widget>[ Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton( child: Text(Platform.isIOS ? 'External directories are unavailable on iOS' : 'Get External Storage Directories'), onPressed: Platform.isIOS ? null : () {_requestExternalStorageDirectories(StorageDirectory.music,);}, ), ), ]), FutureBuilder<List<Directory>?>(future: _externalStorageDirectories, builder: _buildDirectories),
Column(children: <Widget>[ Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton( child: Text(Platform.isIOS ? 'External directories are unavailable on iOS' : 'Get External Cache Directories'), onPressed: Platform.isIOS ? null : _requestExternalCacheDirectories, ), ), ]), FutureBuilder<List<Directory>?>(future: _externalCacheDirectories, builder: _buildDirectories),
Padding(padding: const EdgeInsets.all(16.0), child: ElevatedButton(child: const Text('Get Download Directory'), onPressed: _requestDownloadDirectory,),), FutureBuilder<Directory?>(future: _downloadDirectory, builder: _buildDirectory), ], ), )
|