【发布时间】:2017-10-14 01:10:05
【问题描述】:
我使用 FileSystemWatcher 对象从文件夹中检索文件。
该代码适用于本地机器驱动器/文件夹,但当我使用网络路径时会引发异常。
由于某种原因,如果我在调试模式下启动服务,代码不会引发异常。如果我通过 installutil 安装它,则会再次引发此异常。 也许有一些权限问题,但我不知道是什么......
public LevelOneValidatedWatcher(string strLevelOneFolder)
{
FileSystemWatcher objFSW = new FileSystemWatcher();
objFSW.Path = strLevelOneFolder; /// <<<<<<<<<<<< EXCEPTION THROWN HERE
objFSW.Filter = "*.zip";
objFSW.Created += new FileSystemEventHandler(myWatcher_Created);
objFSW.Renamed += new RenamedEventHandler(mydWatcher_Renamed);
objFSW.EnableRaisingEvents = true;
}
System.ArgumentException was unhandled
Message=The directory name T:\INFORMATION TECHNOLOGY\bu is invalid.
Source=System
StackTrace:
at System.IO.FileSystemWatcher.set_Path(String value)
at MA.BatchTool.ServerLibrary.LevelOneValidatedWatcher..ctor(String strLevelOneFolder) in D:\Dev\Projects\MailAssurety1.1\Development\SourceCode\MA_1.1\WebServerSide\WebServerLibraries\LevelOneValidatedWatacher.cs:line 23
at MA.BatchTool.ServerLibrary.ServerJobProcessor.StartFileWatcher(Object strPath) in D:\Dev\Projects\MailAssurety1.1\Development\SourceCode\MA_1.1\WebServerSide\WebServerLibraries\ServerJobProcessor.cs:line 32
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
【问题讨论】:
-
根据异常消息,路径不存在。请确保您使用的路径正确。
-
您好,路径存在。它是一个共享驱动器。当我在调试模式下启动我的 Visual Studio 时,该程序可以访问该路径。将该服务安装为 Windows 服务后,发生异常。
-
网络路径是什么样的?您可以尝试使用 \\?\ 或 @\\ 或 $
-
@Vinod:是的,我可以使用 UNC,但前提是我将登录从本地系统帐户更改为我自己的帐户。但是在这种情况下,映射驱动器“T:\”的使用仍然被阻止。
标签: c# .net filesystemwatcher mapped-drive