因为你没有对那些变量赋值, 所以在编译的时候会报错. 可以在声明时先赋值空值.
补充(2008-10-2 10:38:54)
因为你的赋值语句在try块内. 而又包含catch块, 有可能在进入块第一句就引发了异常, 然后会跳转到catch块. 这样就相当于没有赋值. 所以在下面再引用这个变量的时候就会出现编译错误.
补充(2008-10-2 19:11:07)
只是可能,不一定引发异常,但是系统会按最坏打算估计,明白没?
补充(2008-10-3 15:50:59)
就是在你声明的时候给他们赋值.
DirectoryInfo[] subDir = null;
DirectoryInfo[] listDir = null;
FileInfo[] listFile = null;
补充(2008-10-3 21:04:56)
因为你贴出来的是部分代码, 所以得你自己调试.
将catch{}改成catch(Exception e){/*在这里查看变量e的信息*/}
应该是你传入的参数(PathName.FullPath和e.Node.FullPath)不正确, 在使用前一定要判断路径是否存在, 也就是只有Directory.Exists(string)成立才继续.
1.使用了未赋值的局部变量subDir
2.使用了未赋值的局部变量listDir
3.使用了未赋值的局部变量listFile
定义的时候赋null值先,应该只是警告错误,可以编译通过的吧?