mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-18 18:08:07 +03:00
Windows: make fs
to use workspace windows
crate (#9350)
Release Notes: - N/A
This commit is contained in:
parent
a183c33367
commit
cbf960e979
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -3920,7 +3920,7 @@ dependencies = [
|
|||||||
"text",
|
"text",
|
||||||
"time",
|
"time",
|
||||||
"util",
|
"util",
|
||||||
"windows-sys 0.52.0",
|
"windows 0.53.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -343,6 +343,7 @@ features = [
|
|||||||
"Win32_Graphics_DirectComposition",
|
"Win32_Graphics_DirectComposition",
|
||||||
"Win32_Graphics_Gdi",
|
"Win32_Graphics_Gdi",
|
||||||
"Win32_Security",
|
"Win32_Security",
|
||||||
|
"Win32_Storage_FileSystem",
|
||||||
"Win32_System_Com",
|
"Win32_System_Com",
|
||||||
"Win32_System_Com_StructuredStorage",
|
"Win32_System_Com_StructuredStorage",
|
||||||
"Win32_System_DataExchange",
|
"Win32_System_DataExchange",
|
||||||
|
@ -43,10 +43,7 @@ fsevent.workspace = true
|
|||||||
notify = "6.1.1"
|
notify = "6.1.1"
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.dependencies]
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
windows-sys = { version = "0.52", features = [
|
windows.workspace = true
|
||||||
"Win32_Foundation",
|
|
||||||
"Win32_Storage_FileSystem",
|
|
||||||
] }
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
gpui = { workspace = true, features = ["test-support"] }
|
gpui = { workspace = true, features = ["test-support"] }
|
||||||
|
@ -1495,7 +1495,7 @@ async fn file_id(path: impl AsRef<Path>) -> Result<u64> {
|
|||||||
use std::os::windows::io::AsRawHandle;
|
use std::os::windows::io::AsRawHandle;
|
||||||
|
|
||||||
use smol::fs::windows::OpenOptionsExt;
|
use smol::fs::windows::OpenOptionsExt;
|
||||||
use windows_sys::Win32::{
|
use windows::Win32::{
|
||||||
Foundation::HANDLE,
|
Foundation::HANDLE,
|
||||||
Storage::FileSystem::{
|
Storage::FileSystem::{
|
||||||
GetFileInformationByHandle, BY_HANDLE_FILE_INFORMATION, FILE_FLAG_BACKUP_SEMANTICS,
|
GetFileInformationByHandle, BY_HANDLE_FILE_INFORMATION, FILE_FLAG_BACKUP_SEMANTICS,
|
||||||
@ -1504,7 +1504,7 @@ async fn file_id(path: impl AsRef<Path>) -> Result<u64> {
|
|||||||
|
|
||||||
let file = smol::fs::OpenOptions::new()
|
let file = smol::fs::OpenOptions::new()
|
||||||
.read(true)
|
.read(true)
|
||||||
.custom_flags(FILE_FLAG_BACKUP_SEMANTICS)
|
.custom_flags(FILE_FLAG_BACKUP_SEMANTICS.0)
|
||||||
.open(path)
|
.open(path)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
@ -1512,10 +1512,7 @@ async fn file_id(path: impl AsRef<Path>) -> Result<u64> {
|
|||||||
// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfileinformationbyhandle
|
// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfileinformationbyhandle
|
||||||
// This function supports Windows XP+
|
// This function supports Windows XP+
|
||||||
smol::unblock(move || {
|
smol::unblock(move || {
|
||||||
let ret = unsafe { GetFileInformationByHandle(file.as_raw_handle() as HANDLE, &mut info) };
|
unsafe { GetFileInformationByHandle(HANDLE(file.as_raw_handle() as _), &mut info)? };
|
||||||
if ret == 0 {
|
|
||||||
return Err(anyhow!(format!("{}", std::io::Error::last_os_error())));
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok(((info.nFileIndexHigh as u64) << 32) | (info.nFileIndexLow as u64))
|
Ok(((info.nFileIndexHigh as u64) << 32) | (info.nFileIndexLow as u64))
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user