Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件不会显示在资源管理器上,但VB.NET会将其打开_C#_Vb.net_Explorer_Fileinfo_Hidden Files - Fatal编程技术网

C# 文件不会显示在资源管理器上,但VB.NET会将其打开

C# 文件不会显示在资源管理器上,但VB.NET会将其打开,c#,vb.net,explorer,fileinfo,hidden-files,C#,Vb.net,Explorer,Fileinfo,Hidden Files,我的程序在windows系统路径(C:\windows\syswow64…)下写入一些文件 其中一个文件由于测试原因被删除,我们正在更改某些内容,需要将其删除。好的,这里没有问题,文件不见了(几乎…)。 问题是,我的应用程序仍在获取文件!这很有趣,因为我真的删除了文件(shift+del) 我使用FileInfo类测试文件是否存在 我快疯了。我看不出哪里出了错。 当然,在文件夹选项是使能看到隐藏和系统文件 多谢各位 我的代码如下: 公共共享函数GetUserConfigFile()作为字符串 D

我的程序在windows系统路径(C:\windows\syswow64…)下写入一些文件

其中一个文件由于测试原因被删除,我们正在更改某些内容,需要将其删除。好的,这里没有问题,文件不见了(几乎…)。 问题是,我的应用程序仍在获取文件!这很有趣,因为我真的删除了文件(shift+del)

我使用FileInfo类测试文件是否存在

我快疯了。我看不出哪里出了错。 当然,在文件夹选项是使能看到隐藏和系统文件

多谢各位

我的代码如下:

公共共享函数GetUserConfigFile()作为字符串
Dim UserConfigFile作为字符串=Metodos.GetUserConfigPath(“config.gf”)
'上面我们有C:\Windows\SysWOW64\Microsoft\..\config.gf
Dim配置文件作为新IO.FileInfo(UserConfigFile)
ConfigFile.Refresh()
EventLog.RegisterDebugMessage(“ConfigFile.Exists:{0};ConfigFile.Length:{1}”,ConfigFile.Exists,ConfigFile.Length)
如果((ConfigFile.Exists and also ConfigFile.Length=0)或lse Not ConfigFile.Exists),则
Dim配置为StreamWriter=IO.File.CreateText(UserConfigFile)
config.WriteLine(“”)
config.Close()
config.Dispose()
如果结束
RegisterDebugMessage(“config.gf->{0}”,IO.File.ReadAllText(UserConfigFile))
这是给我看文件的内容…-
返回用户配置文件
端函数

我猜您正被文件系统重定向程序()

在大多数情况下,每当32位应用程序尝试访问%windir%\System32时,访问将重定向到%windir%\SysWOW64。对%windir%\lastgood\system32的访问被重定向到%windir%\lastgood\SysWOW64。对%windir%\regedit.exe的访问被重定向到%windir%\SysWOW64\regedit.exe

System32和SYSWOW64文件夹有一些神奇之处。 (讽刺的是,32位文件存储在WOW64中,而64位文件存储在System32中)

MSDN页面提供了一个可行的解决方案:

32位应用程序可以通过将%windir%\Sysnative替换为%windir%\System32来访问本机系统目录。WOW64将Sysnative识别为一个特殊别名,用于指示文件系统不应重定向访问。此机制灵活且易于使用,因此,建议使用此机制绕过文件系统重定向。请注意,64位应用程序不能使用Sysnative别名,因为它是一个虚拟目录而不是真实目录


我猜您正被文件系统重定向器()击中

在大多数情况下,每当32位应用程序尝试访问%windir%\System32时,访问将重定向到%windir%\SysWOW64。对%windir%\lastgood\system32的访问被重定向到%windir%\lastgood\SysWOW64。对%windir%\regedit.exe的访问被重定向到%windir%\SysWOW64\regedit.exe

System32和SYSWOW64文件夹有一些神奇之处。 (讽刺的是,32位文件存储在WOW64中,而64位文件存储在System32中)

MSDN页面提供了一个可行的解决方案:

32位应用程序可以通过将%windir%\Sysnative替换为%windir%\System32来访问本机系统目录。WOW64将Sysnative识别为一个特殊别名,用于指示文件系统不应重定向访问。此机制灵活且易于使用,因此,建议使用此机制绕过文件系统重定向。请注意,64位应用程序不能使用Sysnative别名,因为它是一个虚拟目录而不是真实目录


与Mark Peters所说的非常相似的是,另一件可能发生的事情是因为您没有对该文件夹的写入权限,所以您真正看到的是位于
%LOCALAPPDATA%\VirtualStore\Windows\System32
中的文件。您的应用程序是否以管理权限运行?如果不是,则在运行时文件是否丢失

我有一篇长得多的文章描述了一个类似的问题


另外,为什么您“需要”让您的程序访问windows目录中的文件?你在做什么,把这个要求添加到你的程序中?

与马克·彼得斯所说的非常相似,另一件可能发生的事情是因为你没有对该文件夹的写入权限,所以你真正看到的是位于
%LOCALAPPDATA%\VirtualStore\Windows\System32
中的文件。您的应用程序是否以管理权限运行?如果不是,则在运行时文件是否丢失

我有一篇长得多的文章描述了一个类似的问题


另外,为什么您“需要”让您的程序访问windows目录中的文件?你在做什么来增加你的程序的需求?

你确定你在同一条路径上工作吗?现在你真的不应该在任何系统目录中写入文件。是的。。。我以前想过这个。。。因为我们可以把这个文件放到SysWOW64或System32上。。。我两个都试过了,但都没有成功。我需要在那里写入文件。您是否尝试在调试器中检查
UserConfigFile
是否包含您期望的路径?此外,用户配置文件通常不会进入系统目录。是的。就是我要找的那条路。我知道那不是最好的地方,但我需要它。我不能改变它。我只是想把一个文件复制到指定的路径,你想知道吗?是的。我很确定这是个小问题,但我看不出来。你确定你在同一条路径上工作吗?你真的不应该在任何系统目录下写文件。是的。。。我以前想过这个。。。因为我们可以把这个文件放到SysWOW64或System32上。。。我两个都试过了,但都没有成功。我需要在那里写入文件。您是否尝试在调试器中检查
UserConfigFile
是否包含您期望的路径?此外,用户配置文件通常不会进入系统目录。是的。是