mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 09:30:24 +00:00
FileManager: Make copying faster with ftruncate() and a bigger buffer
Apply the same techniques from "cp" to make copying files much faster.
This commit is contained in:
parent
721585473b
commit
f76168a3ea
Notes:
sideshowbarker
2024-07-19 11:23:26 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/f76168a3ea3
1 changed files with 9 additions and 2 deletions
|
@ -74,8 +74,15 @@ bool copy_file(const String& src_path, const String& dst_path, const struct stat
|
|||
}
|
||||
}
|
||||
|
||||
if (src_stat.st_size > 0) {
|
||||
if (ftruncate(dst_fd, src_stat.st_size) < 0) {
|
||||
perror("cp: ftruncate");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
char buffer[BUFSIZ];
|
||||
char buffer[32768];
|
||||
ssize_t nread = read(src_fd, buffer, sizeof(buffer));
|
||||
if (nread < 0) {
|
||||
return false;
|
||||
|
@ -130,4 +137,4 @@ String get_duplicate_name(const String& path, int duplicate_count)
|
|||
}
|
||||
return duplicated_name.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue