@@ -1188,11 +1188,7 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1188
1188
// SAFETY: We have allocated enough memory for a full FILE_RENAME_INFO struct and a filename.
1189
1189
unsafe {
1190
1190
( & raw mut ( * file_rename_info) . Anonymous ) . write ( c:: FILE_RENAME_INFO_0 {
1191
- // Don't bother with FileRenameInfo on Windows 7 since it doesn't exist.
1192
- #[ cfg( not( target_vendor = "win7" ) ) ]
1193
1191
Flags : c:: FILE_RENAME_FLAG_REPLACE_IF_EXISTS | c:: FILE_RENAME_FLAG_POSIX_SEMANTICS ,
1194
- #[ cfg( target_vendor = "win7" ) ]
1195
- ReplaceIfExists : 1 ,
1196
1192
} ) ;
1197
1193
1198
1194
( & raw mut ( * file_rename_info) . RootDirectory ) . write ( ptr:: null_mut ( ) ) ;
@@ -1202,22 +1198,16 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1202
1198
. copy_to_nonoverlapping ( ( & raw mut ( * file_rename_info) . FileName ) as * mut u16 , new. len ( ) ) ;
1203
1199
}
1204
1200
1205
- #[ cfg( not( target_vendor = "win7" ) ) ]
1206
- const FileInformationClass : c:: FILE_INFO_BY_HANDLE_CLASS = c:: FileRenameInfoEx ;
1207
- #[ cfg( target_vendor = "win7" ) ]
1208
- const FileInformationClass : c:: FILE_INFO_BY_HANDLE_CLASS = c:: FileRenameInfo ;
1209
-
1210
1201
// We don't use `set_file_information_by_handle` here as `FILE_RENAME_INFO` is used for both `FileRenameInfo` and `FileRenameInfoEx`.
1211
1202
let result = unsafe {
1212
1203
cvt ( c:: SetFileInformationByHandle (
1213
1204
handle. as_raw_handle ( ) ,
1214
- FileInformationClass ,
1205
+ c :: FileRenameInfoEx ,
1215
1206
( & raw const * file_rename_info) . cast :: < c_void > ( ) ,
1216
1207
struct_size,
1217
1208
) )
1218
1209
} ;
1219
1210
1220
- #[ cfg( not( target_vendor = "win7" ) ) ]
1221
1211
if let Err ( err) = result {
1222
1212
if err. raw_os_error ( ) == Some ( c:: ERROR_INVALID_PARAMETER as _ ) {
1223
1213
// FileRenameInfoEx and FILE_RENAME_FLAG_POSIX_SEMANTICS were added in Windows 10 1607; retry with FileRenameInfo.
@@ -1236,9 +1226,6 @@ pub fn rename(old: &Path, new: &Path) -> io::Result<()> {
1236
1226
}
1237
1227
}
1238
1228
1239
- #[ cfg( target_vendor = "win7" ) ]
1240
- result?;
1241
-
1242
1229
Ok ( ( ) )
1243
1230
}
1244
1231
0 commit comments