首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在temp以外的目录中创建temp文件?

如何在temp以外的目录中创建temp文件?
EN

Stack Overflow用户
提问于 2009-03-23 17:12:47
回答 3查看 6.6K关注 0票数 6

我已经编写了一些代码,这些代码应该将文件写入临时目录,然后将其复制到永久位置,但发现这样做会在复制命令中产生与权限相关的错误。代码如下所示:

代码语言:javascript
复制
 string tempPath = Path.GetTempFileName();
 Stream theStream = new FileStream(tempPath, FileMode.Create);

  // Do stuff.

  File.Copy(tempPath, _CMan.SavePath, true);
  File.Delete(tempPath);

我模糊地记得,有一个API调用可以在指定的目录中创建一个临时文件,并作为参数传递。但是,那是我在VB的6天中模糊的记忆。

那么,如何在Windows定义的临时目录之外的目录中创建临时文件呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-23 17:14:56

代码语言:javascript
复制
Path.Combine(directoryYouWantTheRandomFile, Path.GetRandomFileName())
票数 17
EN

Stack Overflow用户

发布于 2009-03-23 17:16:04

你的问题有点离题,但也许你只是在尝试复制之前没有关闭流?如果这真的是一个权限问题,那么当你打开这个流的时候,你似乎就遇到了基于权限的问题。

票数 3
EN

Stack Overflow用户

发布于 2009-03-30 10:33:13

您还可以使用GetTempFileName Win32 API函数来执行此操作:

代码语言:javascript
复制
<DllImport("kernel32.dll")> _
Private Shared Function GetTempFileName(ByVal lpPathName As String, ByVal lpPrefixString As String, ByVal uUnique As Integer, ByVal lpTempFileName As StringBuilder) As Integer

End Function

Sub CreateFile()
    Const path As String = "C:\MyTemp"
    Const prefix As String = "tmp"
    Dim fileName As New StringBuilder(576)
    Dim result As Integer = GetTempFileName(path, prefix, 0, fileName)
End Sub
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/674303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档