refactor(sftp): Replace hard-coded path separators with Pfs.seperator (#993)

Unify the use of Pfs.seperator for handling file path separators to enhance cross-platform compatibility.
This commit is contained in:
GT610
2026-01-06 23:50:11 +08:00
committed by GitHub
parent 26efb8e185
commit cc300c141a
4 changed files with 10 additions and 6 deletions

View File

@@ -36,7 +36,7 @@ class SftpReqStatus {
late SftpWorker worker;
final Completer? completer;
String get fileName => req.localPath.split('/').last;
String get fileName => req.localPath.split(Pfs.seperator).last;
// status of the download
double? progress;

View File

@@ -70,7 +70,7 @@ Future<void> _download(SftpReq req, SendPort mainSendPort, SendErrorFunction sen
mainSendPort.send(SftpWorkerStatus.sshConnectted);
/// Create the directory if not exists
final dirPath = req.localPath.substring(0, req.localPath.lastIndexOf('/'));
final dirPath = req.localPath.substring(0, req.localPath.lastIndexOf(Pfs.seperator));
await Directory(dirPath).create(recursive: true);
/// Use [FileMode.write] to overwrite the file

View File

@@ -123,7 +123,7 @@ class _LocalFilePageState extends ConsumerState<LocalFilePage> with AutomaticKee
final item = items![index];
final file = item.$1;
final fileName = file.path.split('/').last;
final fileName = file.path.split(Pfs.seperator).last;
final stat = item.$2;
final isDir = stat.type == FileSystemEntityType.directory;
@@ -216,7 +216,7 @@ extension _Actions on _LocalFilePageState {
}
Future<void> _showFileActionDialog(FileSystemEntity file) async {
final fileName = file.path.split('/').lastOrNull ?? '';
final fileName = file.path.split(Pfs.seperator).lastOrNull ?? '';
if (isPickFile) {
context.showRoundDialog(
title: libL10n.file,
@@ -308,7 +308,7 @@ extension _Actions on _LocalFilePageState {
}
void _showDeleteDialog(FileSystemEntity file) {
final fileName = file.path.split('/').last;
final fileName = file.path.split(Pfs.seperator).last;
context.showRoundDialog(
title: libL10n.delete,
child: Text(libL10n.askContinue('${libL10n.delete} $fileName')),

View File

@@ -585,7 +585,11 @@ extension _Actions on _SftpPageState {
/// Local file dir + server id + remote path
String _getLocalPath(String remotePath) {
return Paths.file.joinPath(widget.args.spi.oldId).joinPath(remotePath);
var normalizedPath = remotePath.replaceAll('/', Pfs.seperator);
if (normalizedPath.startsWith(Pfs.seperator)) {
normalizedPath = normalizedPath.substring(1);
}
return Paths.file.joinPath(widget.args.spi.id).joinPath(normalizedPath);
}
/// Only return true if the path is changed