我面临着非常奇怪的问题:
我在 64 位 Windows Server 2008 R2 机器上得到了一个 64 位 c#.net 应用程序,它被 Windows 服务调用,它在本地系统用户下启动,此外,这个 64 位 c#.net 应用程序启动 32 位 java 应用程序和此 java 应用程序的应用程序数据文件夹位于 C:\Windows\SysWOW64\config\systemprofile\AppData。64 位 c#.net 应用程序的应用程序数据文件夹位于 C:\Windows\System32\config\systemprofile\AppData
因此对于 32 位应用程序应用程序数据文件夹是(在本地系统用户的情况下):-C:\Windows\SysWOW64\config\systemprofile\AppData
对于 64 位应用程序数据文件夹是(如果是本地系统用户):-C:\Windows\System32\config\systemprofile\AppData
请注意:这不是输入错误,它们指的是相反的文件夹(这是 microsoft 对于 64 位操作系统的决定),您可以阅读https://msdn.microsoft.com/en-us/library/aa384187.aspx详细解释。
现在,我需要将一些文件从 64 位应用程序写入 32 位应用程序数据文件夹,因为这些文件将被 32 位 Java 应用程序使用。
所以,我需要知道如何使用 c#.net 从 64 位应用程序获取 32 位应用程序数据文件夹。
重要提示:在本地系统用户下启动应用程序时会遇到此问题(即应用程序已由窗口服务启动),当用户显式启动应用程序时不会有任何问题,因为在这种情况下,用户应用程序数据文件夹对于 64 位和 32 位应用程序将是相同的。