Directory.CreateDirectory奇怪的行为

时间:2010-11-15 17:16:25

标签: c#

我有一个Windows服务,它运行一个单独的线程,其功能可以执行

if (!Directory.Exists(TempUpdateDir))
        {
            DirectoryInfo di = Directory.CreateDirectory(TempUpdateDir);
            di.Refresh();
            EventLog.WriteEntry("Downloader", string.Format("DEBUG: Trying to create temp dir:{0}. Exists?{1},{2}",TempUpdateDir, Directory.Exists(TempUpdateDir), di.Exists));
        }

不会抛出异常,Directory.Exists说真(在if块内)但是当你使用资源管理器时,磁盘上没有这样的目录。我已经看过目录创建了几次,但是大多数时间目录都没有创建,也没有抛出异常。

(此服务在本地系统下运行) 稍后此服务使用Process类启动程序并退出。该程序也假设使用文件,将它们复制到创建的目录,但它也没有。

代码在Windows 2003服务器上出现问题。

什么...... ????????????????

2 个答案:

答案 0 :(得分:1)

我的猜测TempUpdateDir是一个相对目录名,它实际上并不是指您认为它的位置。但是,如果没有更多的信息,很难说。记录绝对路径也很有用,以便更容易检查。

答案 1 :(得分:1)

要创建文件夹,请创建 DirectoryInfo 的实例,然后调用 DirectoryInfo 。创建方法。您可以检查布尔 DirectoryInfo .Exists属性以确定 如果文件夹已存在。以下示例检查是否存在文件夹和 虽然公共语言运行时(CLR),但如果它尚不存在则创建它 如果您尝试创建已存在的文件夹,则不会抛出异常。

目录创建示例:

DirectoryInfo newDir = new DirectoryInfo(@"C:\deleteme");
if (newDir.Exists)
    Console.WriteLine("The folder already exists");
else
    newDir.Create();
相关问题