Windows中获取文件位置的最简单方法是什么?
我有一个由Windows函数GetModuleName返回给我的文件名(返回模块的全名(exe或dll)),它可以是任何有效的文件名格式,例如。
了解路径是指本地驱动器还是网络驱动器的最简单方法是什么?
答案 0 :(得分:1)
GetFullPathName()
将有助于规范化路径名称。我觉得你不需要它。你想要通过手柄。所以请致电CreateFile()
,获取句柄,然后拨打电话,例如GetFinalPathNameByHandle(VOLUME_NAME_GUID)
这可行,因为网络驱动器没有卷GUID。
答案 1 :(得分:0)
此代码可能对您有所帮助,它可以确定文件夹是否在网络共享上。
#include <windows.h>
#include <stdio.h>
#include <lm.h>
int main()
{
PSHARE_INFO_502 BufPtr, p;
NET_API_STATUS res;
LPTSTR lpszServer = NULL;
DWORD er = 0,tr = 0,resume = 0, i;
do
{
res = NetShareEnum(lpszServer, 502, (LPBYTE *) &BufPtr, -1, &er, &tr, &resume);
if(res == ERROR_SUCCESS || res == ERROR_MORE_DATA)
{
p = BufPtr;
for(i = 1; i <= er; i++)
{
printf("%S\t\t%S\n", p->shi502_netname, p->shi502_path);
p++;
}
NetApiBufferFree(BufPtr);
}
else
printf("Error: %ld\n", res);
}
while(res == ERROR_MORE_DATA);
system("pause");
return 0;
}