如何动态创建临时目录?(100分)

  • 主题发起人 主题发起人 坏蟑螂
  • 开始时间 开始时间

坏蟑螂

Unregistered / Unconfirmed
GUEST, unregistred user!
记得FoxPro中有个函数可以提供一个临时目录名,<br>这个目录名决不会与其它同级目录重名,<br>不知在WIN32 API中应是哪个函数?<br><br>我的软件用了一个附加的TSession,它需要一个PrivateDir,<br>如果我指定一个固定的目录(比如:C:/Windows/Temp),<br>那么如果我的软件是非正常退出的,<br>下次运行就会出现“Directory is buzy”的错误。<br>这样不好。<br><br>所以我希望每次运行都生成一个唯一的目录,<br>保证不会和以前的重名,软件正常退出就删除它。<br>即使非正常退出或掉电,下次也能正常运行。<br><br>
 
The GetTempPath function retrieves the path of the directory designated for temporary files. This function supersedes the GetTempDrive function. <br><br>DWORD GetTempPath(<br><br>&nbsp; &nbsp; DWORD nBufferLength, // size, in characters, of the buffer <br>&nbsp; &nbsp; LPTSTR lpBuffer // address of buffer for temp. path <br>&nbsp; &nbsp;); <br>&nbsp;<br><br>Parameters<br><br>nBufferLength<br><br>Specifies the size, in characters, of the string buffer identified by lpBuffer. <br><br>lpBuffer<br><br>Points to a string buffer that receives the null-terminated string specifying the temporary file path.
 
sorry,错了。shy
 
用o*o的方法加CreateClassID。
 
你快到是快!可是老兄啊!!!<br>这可是返回 的“系统临时目录”啊!!!<br>我要的是系统目录或其它随便哪个目录下的唯一唯一唯一唯一唯一的新建目录!!!<br>
 
to 沈前卫: 愿闻其详<br><br>
 
自己程序中维护一个整型值,然后和一个特定的字符串组合后用作新建目录的名字!<br>每建一次整型值加一!你去加吧! &nbsp;<br>我加,我加,我加……
 
是啊,每次加1,然后判断目录是否存在,存在则继续加1,直到不存在.
 
没有WIN API吗?<br>
 
uses ComObj;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; TempPath:array [0..255] of char;<br>&nbsp; iPathLen:integer;<br>begin<br>&nbsp; GetTempPath(iPathLen,TempPath);<br>&nbsp; ShowMessage(TempPath+CreateClassID);<br>end;<br>
 
真是不好意思,刚才脸都红透了。<br>俺总是在别人屋里信口开河,得改改了。<br><br>用随机数先造一个目录名,然后用DirectoryExsist判断,<br>若已存在,就加1,再判断,应该可以.<br><br>嗨,又是拾人牙慧,不过刚才作错了,总得说几句。
 
每次进入时,取得系统时间(yyyymmddhhmmss),然后用DirectoryExist判断,<br>如存在,重新再取一次系统时间,再判断,直到不重复为止。<br>一般我取随机数都这么做,所说比较笨,但比较实用。<br>
 
我的方法不好吗,每次绝对不一样。<br><br>o*o:<br>&nbsp; 没时么,我其实很进陪你的。
 
前卫兄的方法确实不错,我也曾见到过ClassID当目录名和文件名的,<br>估计就是这么作的。唯一的缺点是名字太长了,不过是临时的,也没什么关系。
 
gettemppath可以得到一个唯一的文件名,<br>但它会“好心”地帮你创建这个文件,<br>而我要的是目录,只好先删了这个文件,<br>再去掉“。TMP”后缀,再创建目录。<br><br>这就是我的办法,只是觉得有点“不正常”,<br>呵呵。<br>谢谢大家参与。<br>
 
后退
顶部