当前位置:  开发笔记 > 编程语言 > 正文

如何使用System.IO.DirectoryInfo访问映射的网络驱动器?

如何解决《如何使用System.IO.DirectoryInfo访问映射的网络驱动器?》经验,为你挑选了2个好方法。

我需要在映射的网络驱动器上创建一个目录.我正在使用代码:

DirectoryInfo targetDirectory = new DirectoryInfo(path);
if (targetDirectory != null)
{
    targetDirectory.Create();
}

如果我指定"\\\\ ServerName \\ Directory"之类的路径,那一切都会好的.如果我将"\\ ServerName\Directory"映射为驱动器Z:,并指定路径"Z:\\",则失败.

创建targetDirectory对象后,VS显示(在调试模式下)targetDirectory.Exists = false,并尝试执行targetDirectory.Create()会引发异常:

System.IO.DirectoryNotFoundException: "Could not find a part of the path 'Z:\'."

但是,相同的代码适用于本地目录,例如C:.

该应用程序是Windows服务(WinXP Pro,SP2,.NET 2),与映射驱动器的用户在同一帐户下运行.Qwinsta回复用户的会话是会话0,因此它与服务的会话相同.



1> Kev..:

映射的网络驱动器是特定于用户的,因此如果应用程序以不同于创建映射驱动器号(z :)的用户的身份运行,则它将无法工作.



2> Doomsknight..:

基于这个事实,映射的驱动器号不起作用,简单的解决方案是键入完整的网络路径.

阿卡,

我的R:/驱动器已映射到\\myserver\files\myapp\

所以不要使用

"R:/" + "photos"

使用

"\\myserver\files\myapp\" + "photos"


使用完整网络路径的一个问题是它增加了文件路径的长度,使得"R:\ ...\FileA.txt"可用于复制,删除等,但"\\ myserver\files\myapp由于路径太长,\ ...\FileA.txt"可能会失败.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有