Directory.Exists(@" \\ SERVERIP \ aFolder \ bFolder&#34);总是返回false

时间:2015-12-31 14:38:43

标签: c# string path asp.net-mvc-5

以下路径始终返回false

Directory.Exists(@"\\SERVERIP\aFolder\bFolder");
// where SERVERIP is the server-IP which is being accessed using Impersonation

调试代码后,会将double-slashes放入Debugger

我在@中没有double-quotesWindowsExplorer的情况下访问了上述文件路径。

我做错了什么?

[代码将在network]

上运行

2 个答案:

答案 0 :(得分:2)

由于paths-使用default-paths,问题可能出在Visual-Studio [来源/目的地](两者或其中一个[来源/目的地]可能导致问题) }。因此,让我解释一下如何逐步检查路径correct/incorrect

配置** SOURCE-PATH **:

有时,此路径DRIVE:\ProgramFiles\IISExpress(或其他路径,具体取决于IIS的安装位置)会与您在SOURCE-PATH中提供的input连接。要解决此问题,请按/验证这些步骤:

       
  • 确保您使用的SOURCE-PATHFile位于Project-Folder
  •    
  • 访问SOURCE-PATHFile。始终使用此路径/方式:
// 1. SOURCE-PATH + fileName with Extension<br> 
Server.MapPath("~\FolderInsideProjectFolder\", "fileName.extension");

配置** DESTINATION-PATH(到映射网络) **:

如果您输入的路径包含某些字词mispelled,或者您无法访问指定的Server-IP[DestinationServerIP],则此路径会产生问题。要解决此问题,请按照/验证以下步骤:

       
  • 在访问DESTINATION-PATHFile之前,请确保您所指的IP地址对于运行应用程序代码的帐户是可访问的。
  •    
  • 访问DESTINATION-PATHFile。始终使用此路径/方式:
// 2. DESTINATION-PATH + fileName with Extension
@"\\SERVERIP\aFolder\bFolder" + "fileName.extension";</code>

注意: 请记住,SOURCE-PATH可以通过解决其完全限定地址来检查它是否存在(存在/不存在),在这种情况下,如果它存在,它将返回true(完整路径windows-explorer会在Address Bar (Windows-Explorer)中显示DRIVE:/....../

EXTRA-INFORMATION :(因为它是基本的强制性)

来自Copylocal-system的{​​{1}}文件的一行说明是:

networked-mapped drive/path

如果仍然没有清除任何东西(但经过一些不错的搜索后,请通知)

答案 1 :(得分:1)

当用户(人类,系统用户,如IIS_IUSR或应用程序)缺少必需的权限时,我多次看到文件(或目录)访问问题。

根据question面临类似问题asker,我相信this 可以帮助您。< / p>

如果有帮助,请告诉我们。