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:
@@ -36,7 +36,7 @@ class SftpReqStatus {
|
|||||||
late SftpWorker worker;
|
late SftpWorker worker;
|
||||||
final Completer? completer;
|
final Completer? completer;
|
||||||
|
|
||||||
String get fileName => req.localPath.split('/').last;
|
String get fileName => req.localPath.split(Pfs.seperator).last;
|
||||||
|
|
||||||
// status of the download
|
// status of the download
|
||||||
double? progress;
|
double? progress;
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ Future<void> _download(SftpReq req, SendPort mainSendPort, SendErrorFunction sen
|
|||||||
mainSendPort.send(SftpWorkerStatus.sshConnectted);
|
mainSendPort.send(SftpWorkerStatus.sshConnectted);
|
||||||
|
|
||||||
/// Create the directory if not exists
|
/// 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);
|
await Directory(dirPath).create(recursive: true);
|
||||||
|
|
||||||
/// Use [FileMode.write] to overwrite the file
|
/// Use [FileMode.write] to overwrite the file
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ class _LocalFilePageState extends ConsumerState<LocalFilePage> with AutomaticKee
|
|||||||
|
|
||||||
final item = items![index];
|
final item = items![index];
|
||||||
final file = item.$1;
|
final file = item.$1;
|
||||||
final fileName = file.path.split('/').last;
|
final fileName = file.path.split(Pfs.seperator).last;
|
||||||
final stat = item.$2;
|
final stat = item.$2;
|
||||||
final isDir = stat.type == FileSystemEntityType.directory;
|
final isDir = stat.type == FileSystemEntityType.directory;
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ extension _Actions on _LocalFilePageState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _showFileActionDialog(FileSystemEntity file) async {
|
Future<void> _showFileActionDialog(FileSystemEntity file) async {
|
||||||
final fileName = file.path.split('/').lastOrNull ?? '';
|
final fileName = file.path.split(Pfs.seperator).lastOrNull ?? '';
|
||||||
if (isPickFile) {
|
if (isPickFile) {
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: libL10n.file,
|
title: libL10n.file,
|
||||||
@@ -308,7 +308,7 @@ extension _Actions on _LocalFilePageState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _showDeleteDialog(FileSystemEntity file) {
|
void _showDeleteDialog(FileSystemEntity file) {
|
||||||
final fileName = file.path.split('/').last;
|
final fileName = file.path.split(Pfs.seperator).last;
|
||||||
context.showRoundDialog(
|
context.showRoundDialog(
|
||||||
title: libL10n.delete,
|
title: libL10n.delete,
|
||||||
child: Text(libL10n.askContinue('${libL10n.delete} $fileName')),
|
child: Text(libL10n.askContinue('${libL10n.delete} $fileName')),
|
||||||
|
|||||||
@@ -585,7 +585,11 @@ extension _Actions on _SftpPageState {
|
|||||||
|
|
||||||
/// Local file dir + server id + remote path
|
/// Local file dir + server id + remote path
|
||||||
String _getLocalPath(String remotePath) {
|
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
|
/// Only return true if the path is changed
|
||||||
|
|||||||
Reference in New Issue
Block a user