Vb.net 复制目录在C:\Windows\System32\spp\store中不起作用
我正在尝试从我的程序复制此目录,当我尝试时,它告诉我,“路径不存在”。如果您的应用程序是64位系统上的32位应用程序,那么您正在体验所谓的 由于32位应用程序无法加载64位DLL,并且64位应用程序无法加载32位DLL,因此64位系统有两个系统文件夹:Vb.net 复制目录在C:\Windows\System32\spp\store中不起作用,vb.net,copy,store,Vb.net,Copy,Store,我正在尝试从我的程序复制此目录,当我尝试时,它告诉我,“路径不存在”。如果您的应用程序是64位系统上的32位应用程序,那么您正在体验所谓的 由于32位应用程序无法加载64位DLL,并且64位应用程序无法加载32位DLL,因此64位系统有两个系统文件夹: System32-具有64位DLL的64位版本,以及: SysWOW64-带有32位DLL的32位版本 对于试图访问System32文件夹的所有32位应用程序,文件系统重定向程序会自动将%SystemRoot%\System32重定向到%Sy
-具有64位DLL的64位版本,以及:System32
-带有32位DLL的32位版本SysWOW64
System32
文件夹的所有32位应用程序,文件系统重定向程序会自动将%SystemRoot%\System32
重定向到%SystemRoot%\SysWOW64
,因此无法复制该目录的原因是SysWOW64
文件夹中不存在该目录
If Environment.Is64BitOperatingSystem = True AndAlso Environment.Is64Process = False Then 'Is this a 32-bit app in a 64-bit system?
My.Computer.FileSystem.CopyDirectory("C:\Windows\SysNative\spp\store", "your destination path here")
Else 'This is either a 64-bit app in a 64-bit system, or a 32-bit app in a 32-bit system.
My.Computer.FileSystem.CopyDirectory("C:\Windows\System32\spp\store", "your destination path here")
End If
有三种方法可以克服这个问题。我已经按顺序列出了它们,第一个是最推荐的,最后一个是最不推荐的:
SysNative
文件夹
您可以使用C:\Windows\System32
而不是C:\Windows\SysNative
,它会将32位应用程序带到原始System32
文件夹
If Environment.Is64BitOperatingSystem = True AndAlso Environment.Is64Process = False Then 'Is this a 32-bit app in a 64-bit system?
My.Computer.FileSystem.CopyDirectory("C:\Windows\SysNative\spp\store", "your destination path here")
Else 'This is either a 64-bit app in a 64-bit system, or a 32-bit app in a 32-bit system.
My.Computer.FileSystem.CopyDirectory("C:\Windows\System32\spp\store", "your destination path here")
End If
AnyCPU
编译应用程序你能在文件管理器中看到目录吗?是否使用文件系统属性将其隐藏?请改进您的答案;仅仅删除代码是不够好的。哦,我的上帝,非常感谢你。它确实有效。我不知道“SysNative”的用法。非常感谢您的时间和您对详细答案的特别关注。非常感谢。@Jeremy:很高兴我能帮上忙!不要编辑问题以表明您的问题已解决,而是按问题左侧的勾号/复选标记将我的答案标记为“已接受”。有关更多信息,请参阅:@Jeremy:另外,欢迎使用堆栈溢出!如果你还没有,请拿着这本书。只需要一分钟事实谢谢分享你的知识。我喜欢斯塔科弗。我已经跟踪他很长时间了,但今天是我第一次需要进来问他。我借此机会感谢所有这些人,他们一点一点地贡献了自己的经验,帮助解决了我们开始解决的问题。