我有一个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服务器上出现问题。
什么...... ????????????????
答案 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();