一段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系列是支持子目录的