- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我执行这条语句时:
string folderPath =
Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
文件夹路径设置为 C:\ProgramData
。
当我在立即窗口中执行此语句时:
Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
C:\Users\Public\Documents
显示(这是我所期望的)。
有什么不同之处吗?
2012 年 7 月 6 日更新:
我在同一个 exe 的不同类中得到不同的结果。
我有一个类位于库中,还有一个直接链接到应用程序。
库类返回“C:\ProgramData”。链接代码返回“C:\Users\Public\Documents”。
此外,库代码为两者返回“C:\ProgramData”“Environment.SpecialFolder.CommonDocuments”和“Environment.SpecialFolder.ApplicationData”。
链接代码为“Environment.SpecialFolder.CommonDocuments”返回“C:\Users\Public\Documents”,为“Environment.SpecialFolder.ApplicationData”返回“C:\Users\Me\AppData\Roaming”。
我很困惑。
最佳答案
如果您的程序是 64 位的,则可能会发生这种情况。由于 Visual Studio 是 32 位的,当您在立即窗口中执行 Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
时,它会查找 Windows 32 配置单元,而您的程序会查找 64 hive 。并且有可能CommonDocuments文件夹被移动了,只会在64位hive中注册。
这是定义的 Windows 错误 here
编辑 您的更新表明它发生在同一个 EXE 中的两个类中。由于进程只能是 32 位或 64 位(不能同时是两者),这表明上述错误不适用于您(假设程序集之间的正常通信,而不是带有包装器的 COM)。您是否能够将其转化为可以发布的合适测试?
作为快速确认,可能还值得在每个代码中包含以下代码,以加倍确保它们都在同一进程中运行:
Console.WriteLine("{0} Process {1} is {2}bit", GetType().ToString(), System.Diagnostics.Process.GetCurrentProcess().Id, IntPtr.Size * 8);
关于c# - 环境.SpecialFolder.CommonDocuments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355484/
在我的系统上,%AppData%导致 ApplicationData这是 C:\Users\\AppData\Roaming 但是还有C:\Users\\AppData\Local 还有一些困惑D:\
我对这两个特殊文件夹之间的区别感到困惑。 这是一个代码片段,其中写入了每个输出,但它们输出的是相同的东西。 string path = Environment.GetFolderPath(Enviro
我正在使用 VS2013 Express for Desktop 和 Windows Forms。 我正在关注 this MSDN Walkthrough "Creating an Explorer
我有一个项目,我必须在开始菜单中创建快捷方式。为此,我必须获取由 获取的开始菜单的路径 Environment.SpecialFolder.Commonstartmenu 或 Environment.
我的桌面应用程序需要从存储在 ProgramData 文件夹(在 Win 7 中)的文件中存储和检索数据。无论操作系统是 Win 7 还是 Win XP,如何访问 Environment.Specia
我正在将文件保存到 Xamarin 中的 System.Environment.SpecialFolder.Personal。它似乎成功了,因为我可以立即从文件中提取数据。但是,我无法在手机上浏览和找
我希望我的命令行程序采用以下形式的文件参数: -out:%MyDocuments%\dummy.xps 并让 %MyDocuments% 自动替换为: Environment.GetFolderPat
我正在尝试获取当前登录用户的应用程序数据文件夹的路径。 我正在使用 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationDat
我想从我的 WinForms ToolStrip 菜单访问我的“我的文档”文件夹。我正在使用 XML 文件填充 ToolStrip。我将 Environment.GetFolderPath(Envir
我将如何输入一个字符串来替换 (Environment.SpecialFolder.ApplicationData) 因为 .ApplicationData 部分需要根据传递给它的变量进行更改。 st
我正在尝试通过我的应用程序中的 SpecialFolder(Environment.SpecialFolder.StartMenu 和 Environment.SpecialFolder.Deskto
当我执行这条语句时: string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonDocument
我刚开始学习单声道,所以它对我来说是新的。我有两个问题。第一的:Mac 和 Linux 是否支持 Environment.SpecialFolder?第二个问题:您可以推荐阅读哪些博客或网站来研究单声
默认情况下,我们的Windows Forms应用程序将数据文件保存在用户的“我的文档”文件夹(在XP中)或“文档”文件夹(在Vista中)中。我们通过调用以下命令查找此位置: Environment.
我正在开发一个 C# 项目,我正在使用以下代码 string rootPath = Environment.GetFolderPath(Environment.SpecialFolder.Progra
我有一个奇怪的问题:我的 .NET 4.0 WPF 应用程序正在将数据保存到 ApplicationData 文件夹。 Environment.GetFolderPath(Environment.S
我正在使用 SHFileInfo 检索文件和文件夹的系统图标,但是我发现特殊文件夹没有返回正确的文件夹图标。 例如,桌面文件夹将返回与常规文件夹相同的文件夹图标,而不是桌面图标,我的电脑图标看起来像旧
这些命名空间中的魔法路径有什么区别: Environment.SpecialFolder.LocalApplicationData 对比 Application.LocalUserAppDataPat
我一直在尝试大部分 Enviroment.SpecialFolder 枚举,但我认为没有任何方法可以通过枚举。使用 string.Substring() 方法给我带来了最大的收获。 我尝试只获取实际安
是否可以在 UWP 应用程序中使用 Environment.SpecialFolder?我正在尝试将数据库存储在 AppData 文件夹中,而不是 Windows.Storage.Applicatio
我是一名优秀的程序员,十分优秀!