From a3537a67c21362d96cf7eab1f806ec2e68cda8c4 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Sun, 16 Apr 2023 16:26:50 +0800 Subject: [PATCH] #25 fix `sftp` rmdir --- .dart_tool/flutter_gen/gen_l10n/l10n.dart | 6 ++++++ .dart_tool/flutter_gen/gen_l10n/l10n_en.dart | 3 +++ .dart_tool/flutter_gen/gen_l10n/l10n_zh.dart | 3 +++ lib/l10n/app_en.arb | 1 + lib/l10n/app_zh.arb | 1 + lib/view/page/sftp/view.dart | 13 +++++++++---- 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n.dart b/.dart_tool/flutter_gen/gen_l10n/l10n.dart index 85b2d07a..464abdc8 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n.dart @@ -1011,6 +1011,12 @@ abstract class S { /// **'Are you sure to delete [{name}]?'** String sureDelete(Object name); + /// No description provided for @sureDirEmpty. + /// + /// In en, this message translates to: + /// **'Make sure dir is empty.'** + String get sureDirEmpty; + /// No description provided for @sureNoPwd. /// /// In en, this message translates to: diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart index 026d9050..0a0359d0 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart @@ -495,6 +495,9 @@ class SEn extends S { return 'Are you sure to delete [$name]?'; } + @override + String get sureDirEmpty => 'Make sure dir is empty.'; + @override String get sureNoPwd => 'Are you sure to use no password?'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart index b2e96e33..6f05ef02 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart @@ -495,6 +495,9 @@ class SZh extends S { return '确定删除[$name]?'; } + @override + String get sureDirEmpty => '请确保文件夹为空'; + @override String get sureNoPwd => '确认使用无密码?'; diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 0cd4b1e6..ac16761c 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -152,6 +152,7 @@ "stop": "Stop", "success": "Success", "sureDelete": "Are you sure to delete [{name}]?", + "sureDirEmpty": "Make sure dir is empty.", "sureNoPwd": "Are you sure to use no password?", "sureToDeleteServer": "Are you sure to delete server [{server}]?", "termTheme": "Terminal theme", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index bab38993..8afd4194 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -152,6 +152,7 @@ "stop": "停止", "success": "成功", "sureDelete": "确定删除[{name}]?", + "sureDirEmpty": "请确保文件夹为空", "sureNoPwd": "确认使用无密码?", "sureToDeleteServer": "你确定要删除服务器 [{server}] 吗?", "termTheme": "终端主题", diff --git a/lib/view/page/sftp/view.dart b/lib/view/page/sftp/view.dart index e75fa681..0b667b80 100644 --- a/lib/view/page/sftp/view.dart +++ b/lib/view/page/sftp/view.dart @@ -326,18 +326,23 @@ class _SFTPPageState extends State { void delete(BuildContext context, SftpName file) { Navigator.of(context).pop(); + final isDir = file.attr.isDirectory; showRoundDialog( context, _s.attention, - Text(_s.sureDelete(file.filename)), + Text('${_s.sureDelete(file.filename)}\n${isDir ? _s.sureDirEmpty : ''}'), [ TextButton( onPressed: () => Navigator.of(context).pop(), - child: const Text('Cancel'), + child: Text(_s.cancel), ), TextButton( - onPressed: () { - _status.client!.remove(file.filename); + onPressed: () async { + if (file.attr.isDirectory) { + await _status.client!.rmdir(file.filename); + } else { + await _status.client!.remove(file.filename); + } Navigator.of(context).pop(); listDir(); },