2011-04-18 157 views
1

我试图通过DirectoryInfo来验证是否存在UNC路径,但是DirectoryInfo一致性故障转移并说该文件夹不存在,当我可以确认它在Windows资源管理器中时。将DirectoryInfo与UNC路径一起使用

var storagepath = new DirectoryInfo(@"\\123.123.123.123\c$\testfolder\test1\"); 

if (storagepath.Exists) 
{ } 

有没有办法解决?

回答

2

关于您的程序,有几个问题需要回答。

它是否与用户使用资源管理器验证的用户在同一上下文中运行?例如,您是否有可能以受限用户的身份运行控制台应用程序,但是以更高权限的用户身份登录?

存在错误的原因之一包括没有权限访问资源。

你可以尝试像EnumerateDirectories的其他方法,看看结果是什么。 EnumerateDirectories的异常和结果比Exists更具描述性。

+0

使用用户身份验证路径并解决此问题,谢谢! – wonea 2011-05-31 08:53:31

+0

Hi @wonea,你能分享一下如何解决这个问题吗?我有同样的问题,我需要先认证用户,但我不知道如何... – 2012-07-23 19:18:55

+1

我发现这个简单的Windows模拟示例库,它解决了我的问题。只需调用这个库,并在使用封装中放置需要使用经过身份验证的用户运行的命令。 http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User – wonea 2012-07-24 11:45:29