我正在尝试将子目录添加到现有路径。
Win-7 64,英特尔SSD
以具有admin priv的用户身份登录公司域,但不是“Administrator”
Visual Studio 2008,正常启动(不是“以管理员身份运行”)
这是MyApp(WinForms,Debug,x86):
[STAThread]
private static void Main(string[] args)
{
string p = @"C:\ProgramData\MyCompany\MyApp";
Directory.CreateDirectory(p);
string f = "a.txt";
string fullPath = Path.Combine(p, f);
File.WriteAllText(fullPath, string.Empty);
Directory.Delete(p);
正如预期的那样,最后一行抛出IOException:“目录不为空”。应该意味着创建了subdir和file。
问题:Windows资源管理器不显示MyApp子目录(即使在刷新后,在地址栏中键入路径,关闭/重新打开或重新启动)。
C:\ ProgramData \ MyCompany \由另一个应用程序的安装程序创建; Windows资源管理器说它的当前所有者是System。
使用相同的IDE创建控制台应用程序(Debug,x86),复制上面的行并运行; Windows资源管理器很高兴向我展示DigitalTestApps及其中的文件。
如果我对MyApp执行以下任何一项操作,问题就会消失(即Windows资源管理器向我显示“MyApp”子目录及其中的文件):
Build as x64
使用“以管理员身份运行”
使用“MyApp”以外的任何名称(但由于遗留原因,我需要使用MyApp)
导致这种情况的原因是什么?
答案 0 :(得分:0)
@dtb过于谦虚(或忙碌)重新发布他的评论(这解决了我的问题)作为答案,所以我会在这里复制他的评论,以便其他人更容易看到结果如何:
“检查您是否可以在C:\ Users \ JimC \ AppData(文件夹虚拟化)中找到您的目录和文件。 相关:Why Virtualization on ProgramData folder in MS Vista?“
所以这是我在阅读他的建议后所做的:
我从C:\ Users下删除了virutalized目录,它开始正常工作。不确定它是如何在第一时间创建的,但看起来,当它存在时,尝试创建我期望它的目录而不是找到虚拟目录。
再次感谢dtb。