我制作了一台服务器,很多用户正在访问它。
现在我想为每个用户获取映射驱动器的Unc路径,这当然会有所不同。
实际上我需要完整的路径来访问我的c#代码中的那些文件。
从用户那里获取完整路径不是一个选项,因为他们不是开发人员。
我想做的是......如果有人给我Q:
,那么我应该得到像\\server1\foo
这样的绝对路径。我已经搜索但无法为此获得解决方案。
有没有办法做到这一点?
在C#(后端)或angularjs(前端)中?
从this_link我了解到,我无法通过使用javascript上传它来获得完整路径,因为出于安全考虑,浏览器不允许这样做。
我可以提供有关此问题的更多详情吗?
答案 0 :(得分:0)
使用WMI
检查网络路径。您可以在C#中使用ManagementClass
对象。我们可以从Win32_LogicalDisk
获取此信息,您会对名称和 ProviderName 属性感兴趣。
select * from win32_LogicalDisk where driveType = 4
instance of Win32_LogicalDisk
{
Access = 0;
Caption = "Z:";
Compressed = FALSE;
CreationClassName = "Win32_LogicalDisk";
Description = "Network Connection";
DeviceID = "Z:";
DriveType = 4;
FileSystem = "NTFS";
FreeSpace = "1805758038016";
MaximumComponentLength = 255;
MediaType = 0;
Name = "Z:";
ProviderName = "\\\\<server>\\<path>";
Size = "2000396742656";
SupportsDiskQuotas = FALSE;
SupportsFileBasedCompression = TRUE;
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "<server>";
VolumeName = "New Volume";
VolumeSerialNumber = "<id>";
};
编辑:我们必须使用\\<server>\root\cimv2
进行连接才能从远程计算机获取共享信息。感谢Alex指出这一点。