【发布时间】:2013-05-11 09:58:18
【问题描述】:
我遇到了 C 盘的 CreateFile API。它工作正常。但是当我尝试使用网络共享路径时,它会引发错误。
private void GetRootHandle()
{
string vol = string.Concat(@"\\192.168.1.24\share1");
_changeJournalRootHandle = PInvokeWin32.CreateFile(vol,
PInvokeWin32.GENERIC_READ | PInvokeWin32.GENERIC_WRITE,
PInvokeWin32.FILE_SHARE_READ | PInvokeWin32.FILE_SHARE_WRITE,
IntPtr.Zero,
PInvokeWin32.OPEN_EXISTING,
0,
IntPtr.Zero);
if (_changeJournalRootHandle.ToInt32() == PInvokeWin32.INVALID_HANDLE_VALUE)
{
throw new IOException("CreateFile() returned invalid handle",
new Win32Exception(Marshal.GetLastWin32Error()));
}
}
谁能告诉我如何为这个 API 函数使用共享路径
【问题讨论】:
-
您不应该指向该 share1 上的文件吗?又名 \\192.168.1.24\share1\somefile.txt ?
-
嗨,这里我需要使用另一个API函数GetFileInformationByHandle而不是特定文件来枚举根文件夹share1下的所有文件。
-
在这种情况下FindFirstFile 不是更好的开始吗?我看不到如何使用CreateFile api 枚举文件。为什么不能使用 System.IO 托管类?
-
我需要获取仅在 BY_HANDLE_FILE_INFORMATION 中可用的特定文件或文件夹的唯一 ID ..请通过链接 msdn.microsoft.com/en-us/library/aa363788(VS.85).aspx
标签: winapi filesystems network-share