pull/13561/merge
alice pellerin 2025-06-16 13:04:39 -04:00 committed by GitHub
commit f46373dc37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 1 deletions

View File

@ -70,6 +70,16 @@ mod imp {
perms.set_mode(new_perms);
}
#[cfg(target_os = "macos")]
{
use std::fs::{File, FileTimes};
use std::os::macos::fs::FileTimesExt;
let to_file = File::options().write(true).open(to)?;
let times = FileTimes::new().set_created(from_meta.created()?);
to_file.set_times(times)?;
}
std::fs::set_permissions(to, perms)?;
Ok(())
@ -108,7 +118,13 @@ mod imp {
use std::ffi::c_void;
use std::os::windows::{ffi::OsStrExt, fs::OpenOptionsExt, io::AsRawHandle};
use std::os::windows::{
ffi::OsStrExt,
fs::{FileTimesExt, OpenOptionsExt},
io::AsRawHandle,
};
use std::fs::{File, FileTimes};
struct SecurityDescriptor {
sd: PSECURITY_DESCRIPTOR,
@ -412,6 +428,10 @@ mod imp {
let meta = std::fs::metadata(from)?;
let perms = meta.permissions();
let to_file = File::options().write(true).open(to)?;
let times = FileTimes::new().set_created(meta.created()?);
to_file.set_times(times)?;
std::fs::set_permissions(to, perms)?;
Ok(())