我希望我的文件能自动删除。因为就把文件存放在C:\Documents and Settings\Administrator.LUOZH\Local Settings\Temp目录中。(win2k,采用GetTempPath方式得到的临时目录),请问可以吗? 还是需要我手工编程定时删除?

解决方案 »

  1.   

    系统不会自动删除临时文件夹下的文件
    用 HANDLE CreateFile(
      LPCTSTR lpFileName,                         // file name
      DWORD dwDesiredAccess,                      // access mode
      DWORD dwShareMode,                          // share mode
      LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD
      DWORD dwCreationDisposition,                // how to create
      DWORD dwFlagsAndAttributes,                 // file attributes
      HANDLE hTemplateFile                        // handle to template file
    );
    打开文件,注意让dwFlagsAndAttributes包含
    FILE_FLAG_DELETE_ON_CLOSE标志
    这样一旦关闭了此文件所有的句柄,操作系统就会自动删除这个文件。
      

  2.   

    to FBStudio(飞鸟) :
    我在用你所说的方法创建文件后用ShellExecute,但还没有等他执行完文件便已经删除了。
    我希望等这个文件执行后再删除,请问该如何做呢?
      

  3.   

    这个文件是其所有句柄被关闭后应自动删除。
    你可以先打开它,再执行ShellExecute,等ShellExecute任务(不是该函数返回)结束后再关闭你打开的句柄。
      

  4.   

    ShellExecute是另开一个默认程序进行处理,我如何得知他处理完毕?