XP下,使用其他账户无法判断本地文件的问题

abc221414 2012-05-04 03:48:11
系统是XP的,上面有两个管理员账户:
A:NormalUser
B:CadUser

两个账户中,分别都对局域网中某个共享目录进行了映射。都映射成为Z盘。
而且在我的电脑中,也添加了对Z盘的引用。
Z盘中,保存有进行判断使用的文件:Test.txt

我的处理是这样的:
在NormalUser账户下,用CadUser账户启动了一个exe文件。
该exe中,使用了File.Exist(Z:\Test.txt)进行了文件存在的判断。

但是,问题在于,明明路径Z中保存有该文件,但是File.Exist的判断结果却为False。
请问我如何能够访问到这个文件?
多谢!
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc221414 2012-05-10
  • 打赏
  • 举报
回复
多谢。
我发现不能为CADUser账户专门映射Z:盘,因为NormalUser账户中可能有其他的程序使用Z:盘。
我想的方法就是,通过调用cmd,向其中传入net use Z:命令,取得Z:盘实际的应用位置。
然后就可以进行判断了。
多谢!
zara 2012-05-07
  • 打赏
  • 举报
回复
不是,删除和再次映射的,是 CADUser 账户。
runas /user:CADUser BatchFile.bat
BatchFile.bat 文件的内容大致为:
@net use z: /del
@net use z: \\ServerName\ShareName
@exeFile.exe
abc221414 2012-05-07
  • 打赏
  • 举报
回复
使用NormalUser来进行Z:映射的删除和再次映射么?

多谢!
zara 2012-05-07
  • 打赏
  • 举报
回复
不是,是 runas 运行的那个批处理里做这些。因为有多步操作运行,所以要做成批处理格式。不过,你上面不是说已经通过完全路径解决了这个问题么?
abc221414 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

在 NormalUser 下 runas 再启 CADUser 的话,这时的 Z: 盘是“不可用”状态吧,虽然映射可能由于 CADUser 已有的映射而存在。所以,可能的个解决方法是 runas 调用个批处理,其中先行删除原来的 Z: 映射,再行重新映射 Z: ,最后启动 exe 文件;这里的对 Z: 映射的删除,应该不影响到原来已经存在的 CADUser 下对 Z: 的映射和正常使用的。
[/Quote]

您的意思是,在runas之前:
1.删除已经存在的Z:映射
2.重新映射Z:
3.以CADUser启动EXE

对么?
zara 2012-05-04
  • 打赏
  • 举报
回复
在 NormalUser 下 runas 再启 CADUser 的话,这时的 Z: 盘是“不可用”状态吧,虽然映射可能由于 CADUser 已有的映射而存在。所以,可能的个解决方法是 runas 调用个批处理,其中先行删除原来的 Z: 映射,再行重新映射 Z: ,最后启动 exe 文件;这里的对 Z: 映射的删除,应该不影响到原来已经存在的 CADUser 下对 Z: 的映射和正常使用的。
abc221414 2012-05-04
  • 打赏
  • 举报
回复
刚才试验了了一下,
如果直接写成:
File.Exists(Z:\Test.txt)时,无法判断该文件

如果把Z盘符换成它本身的路径,
File.Exists(D:\M\Test.txt)时,则可以正常判断

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧