大家好!。我写了一个.dll,里面用Path.GetFullPath("filename.xml")调用运行目录下的文件,在控制台测试没有任何问题。但是,在windowservice中使用这个DLL时,Path.GetFullPath("filename.xml")这个方法返回的是C:\WINDOWS\system32\filename.xml可能 我表达的不是很清楚,我举个例子:比如我的windowService程序放在:E:\WinService\Win 目录下面,这个目录下面有一个文件filename.xml;我用Path.GetFullPath("filename.xml")目的是想返回:E:\WinService\Win\filename.xml 这个绝对路径;可我这里出现的问题是没有得到路径"E:\WinService\Win\filename.xml"而是返回了:C:\WINDOWS\system32\filename.xml但是,如果我不在windowService服务的话,用Path.GetFullPath("filename.xml")就可以得到E:\WinService\Win\filename.xml 这个绝对路径。
请高手指点
但,如果不用服务就不会出现路径获取错误!
Envirement.getcurrentdi...
应该可以。。这是系统用户的原因。。
方式的话,是可以得到我要的结果,但我想明白是怎么一回事!而且,如果是系统用户的原因,我是在同一台电脑上呀。。同一个用户...谢谢!
string szDllPath = Path.GetDirectoryName(typeof(你的DLL主类的名称,比如MyClass).Assembly.Location)string szFilePath = szDllPath + "\\filename.xml";
string szDllPath = Path.GetDirectoryName(typeof(你的DLL主类的名称,比如MyClass).Assembly.Location)string szFilePath = szDllPath + "\\filename.xml";
dll必须挂接到一个exe等程序里面运行然后搂主的这个dll的宿主进程是windows系统目录里的一个windows服务执行程序,所以得到的目录是
系统目录我有可能不能描述清楚,不过就是这个意思,搂主可以参考