@@ -1316,11 +1316,7 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1316
1316
// SAFETY: We have allocated enough memory for a full FILE_RENAME_INFO struct and a filename.
1317
1317
unsafe {
1318
1318
( & raw mut ( * file_rename_info) . Anonymous ) . write ( c:: FILE_RENAME_INFO_0 {
1319
- // Don't bother with FileRenameInfo on Windows 7 since it doesn't exist.
1320
- #[ cfg( not( target_vendor = "win7" ) ) ]
1321
1319
Flags : c:: FILE_RENAME_FLAG_REPLACE_IF_EXISTS | c:: FILE_RENAME_FLAG_POSIX_SEMANTICS ,
1322
- #[ cfg( target_vendor = "win7" ) ]
1323
- ReplaceIfExists : 1 ,
1324
1320
} ) ;
1325
1321
1326
1322
( & raw mut ( * file_rename_info) . RootDirectory ) . write ( ptr:: null_mut ( ) ) ;
@@ -1330,22 +1326,16 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1330
1326
. copy_to_nonoverlapping ( ( & raw mut ( * file_rename_info) . FileName ) as * mut u16 , new. len ( ) ) ;
1331
1327
}
1332
1328
1333
- #[ cfg( not( target_vendor = "win7" ) ) ]
1334
- const FileInformationClass : c:: FILE_INFO_BY_HANDLE_CLASS = c:: FileRenameInfoEx ;
1335
- #[ cfg( target_vendor = "win7" ) ]
1336
- const FileInformationClass : c:: FILE_INFO_BY_HANDLE_CLASS = c:: FileRenameInfo ;
1337
-
1338
1329
// We don't use `set_file_information_by_handle` here as `FILE_RENAME_INFO` is used for both `FileRenameInfo` and `FileRenameInfoEx`.
1339
1330
let result = unsafe {
1340
1331
cvt ( c:: SetFileInformationByHandle (
1341
1332
handle. as_raw_handle ( ) ,
1342
- FileInformationClass ,
1333
+ c :: FileRenameInfoEx ,
1343
1334
( & raw const * file_rename_info) . cast :: < c_void > ( ) ,
1344
1335
struct_size,
1345
1336
) )
1346
1337
} ;
1347
1338
1348
- #[ cfg( not( target_vendor = "win7" ) ) ]
1349
1339
if let Err ( err) = result {
1350
1340
if err. raw_os_error ( ) == Some ( c:: ERROR_INVALID_PARAMETER as _ ) {
1351
1341
// FileRenameInfoEx and FILE_RENAME_FLAG_POSIX_SEMANTICS were added in Windows 10 1607; retry with FileRenameInfo.
@@ -1364,9 +1354,6 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1364
1354
}
1365
1355
}
1366
1356
1367
- #[ cfg( target_vendor = "win7" ) ]
1368
- result?;
1369
-
1370
1357
Ok ( ( ) )
1371
1358
}
1372
1359
0 commit comments