我的C#应用程序为实现filewatcher的以下代码抛出System.IO.IOExcepton(目录名无效):
public void OnChanged(object source, FileSystemEventArgs e)
{
DirectoryInfo dList = new DirectoryInfo(e.FullPath);
FileInfo[] TxtFiles = dList.GetFiles("*.TXT");
}
Run Code Online (Sandbox Code Playgroud)
e.FullPath 是"C:/ Documents and Settings/Bi/Application Data/TestApp/Reports \\ 0MA01P62240_000005798__TRI__4947712701738551.TXT".
如果您注意到它跟踪文件时似乎在路径上附加了"\\".知道问题可能是什么?
该路径C:/Documents and Settings/Bi/Application Data/TestApp/Reports\\0MA01P62240_000005798_TRI_4947712701738551.TXT不是目录名称,而是文件名.这就是它说目录名无效的原因.
使用Path.GetDirectoryName获取实际目录,如下所示:
string directoryName = Path.GetDirectoryName(e.FullPath);
Run Code Online (Sandbox Code Playgroud)
同样非常奇怪的FileSystemWatcher是,它正在给你一条带有正斜杠的道路; 我无法与你所看到的东西争论,但那些真的应该是反斜杠.您可能需要检查该Path属性FileSystemWatcher以查看该路径是否是硬编码的.
这会带来同样的问题吗?
FileInfo fi = new FileInfo(e.FullPath);
DirectoryInfo di = fi.Directory;
FileInfo[] TxtFiles = di.GetFiles("*.TXT");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12270 次 |
| 最近记录: |