我需要一个函数,该函数要求如下:
功能:
     在指定的文件夹下取得一个合法的尚未使用的文件名参数:
     一个CString类型的变量,表示一个给定的目录
 
返回值:
     一个CString类型的字符串,
     该字符串是一个并不存在的合法文件名的全名,
     依照该字符串可以创建一个文件

解决方案 »

  1.   

    生成一个128bit的随即数,然后用它的得值的16进制表示直接做文件名就可以,重复的概率太小了。
    偶尔碰到了那种几万年也碰不上的事,首先去买张彩票,然后检测一下,重新再生成一个新的就是了。实在不行,再在后面追加上级的时间,看他再重复
      

  2.   

    这是可以的,但是总感觉不爽.我原来的做法是:
    首先给定一个字符串"fn",然后判断以该字符串命名的文件是不是存在?
    如果存在,则不断地加后缀.1,直到没有重复的为止。我想MFC里面总应该有这样的函数吧?如果有的话,用起来应该很方便了。
      

  3.   

    你的方法也不难啊,为什么觉得不好呢?
    MFC里好像没有这种方法。
    即使有,内部也无非是采用某种具体的策略防止重复,这跟你自己编程采用你自己的策略本质上不是一样么?
      

  4.   

    好,谢谢steedhorse(晨星) 老兄,你说的生成128bit的随机数的函数是什么?我决定采阿用你的方法。
      

  5.   

    标准C的tmpnam函数有这功能,在windows下也可以使用,不过不知道是不是标准做法,我觉得windows应该有这个api
      

  6.   

    呵呵,偶都是使用rand函数一个byte一个byte地接起来,嘿嘿。
      

  7.   

    可以用guid来做文件名,保证唯一。