当前位置: 代码迷 >> Windows Mobile >> Windows Mobile 目录创建bug解决方法
  详细解决方案

Windows Mobile 目录创建bug解决方法

热度:10428   发布时间:2013-02-26 00:00:00.0
Windows Mobile 目录创建bug
一段Windows Mobile 6.5上的程序
在程序启动初始化时需要创建三个目录 
Data文件夹是已经存在的 ,需要在Data文件夹里创建出Image\Photo,Image\Idcard和Image\Finger

代码如下
public string currentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
String PhotoImagePath = Path.Combine(currentPath, @"Data\Image\Photo");
if (!Directory.Exists(PhotoImagePath))
DirectoryHelper.CreateDirectory(PhotoImagePath);
String IdcardImagePath = Path.Combine(currentPath, @"Data\Image\Idcard");
if (!Directory.Exists(IdcardImagePath))
DirectoryHelper.CreateDirectory(IdcardImagePath);
String  FingerImagePath = Path.Combine(currentPath, @"Data\Image\Finger");
if (!Directory.Exists(FingerImagePath))
DirectoryHelper.CreateDirectory(FingerImagePath);

public class DirectoryHelper
{

//自定义创建目录方法
public static void CreateDirectory(string targetDir)
{
DirectoryInfo dir = new DirectoryInfo(targetDir);
if (!dir.Exists)
dir.Create();
}
}

出现的问题是程序在第一次启动时只创建了Image文件夹,下面的三个子目录没有创建成功,
退出程序 ,再次开启程序,下面的三个子目录就能创建出来

于是把代码修改,将三个if判断换成了while(!Directory.Exists(XXX)),还是没有在第一次启动成功创建出三个子目录,只创建了Image.
目录没有创建成功,三个While语句却能正常退出,

求解???
------解决方案--------------------------------------------------------
还差一点,就是Directory.Exists(FingerImagePath)返回值是什么?
------解决方案--------------------------------------------------------
那要看.net cf运行库支持不支持了,c++的SHCreate系列是支持子目录的
  相关解决方案