Skip to content

Commit 37e5cd7

Browse files
committed
Do not implicitly allow overwrite for copy/move operations
1 parent c9aaa2a commit 37e5cd7

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

lib/backend/fs.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,14 @@ class TransferFileOperation extends BaseFileSystemOperation<bool> {
180180
required this.source,
181181
required this.destination,
182182
this.copy = false,
183+
this.allowOverwrite = false,
183184
super.cancellable,
184185
});
185186

186187
final File source;
187188
final File destination;
188189
final bool copy;
190+
final bool allowOverwrite;
189191

190192
late final NativeCallable<Void Function(Bool)> _completeCallable;
191193
late final NativeCallable<Void Function(Float)> _progressCallable;
@@ -199,7 +201,7 @@ class TransferFileOperation extends BaseFileSystemOperation<bool> {
199201
file_copy(
200202
source._handle,
201203
destination._handle,
202-
1, // ALLOW_OVERWRITE
204+
allowOverwrite ? 1 : 0,
203205
_cancellable._handle,
204206
_progressCallable.nativeFunction,
205207
_completeCallable.nativeFunction,
@@ -209,7 +211,7 @@ class TransferFileOperation extends BaseFileSystemOperation<bool> {
209211
file_move(
210212
source._handle,
211213
destination._handle,
212-
1, // ALLOW_OVERWRITE
214+
allowOverwrite ? 1 : 0,
213215
_cancellable._handle,
214216
_progressCallable.nativeFunction,
215217
_completeCallable.nativeFunction,
@@ -284,12 +286,14 @@ class File implements Finalizable {
284286

285287
TransferFileOperation copy({
286288
required File destination,
289+
bool allowOverwrite = false,
287290
Cancellable? cancellable,
288291
}) {
289292
return TransferFileOperation._(
290293
source: this,
291294
destination: destination,
292295
copy: true,
296+
allowOverwrite: allowOverwrite,
293297
cancellable: cancellable,
294298
);
295299
}
@@ -329,12 +333,14 @@ class File implements Finalizable {
329333

330334
TransferFileOperation move({
331335
required File destination,
336+
bool allowOverwrite = false,
332337
Cancellable? cancellable,
333338
}) {
334339
return TransferFileOperation._(
335340
source: this,
336341
destination: destination,
337342
copy: false,
343+
allowOverwrite: false,
338344
cancellable: cancellable,
339345
);
340346
}

0 commit comments

Comments
 (0)