急!!如何获取系统的临时目录路径?

leasure 2004-07-30 01:48:47
如何获取系统的临时目录路径?对不同的系统,temp目录是不同的,
出了从注册表获取以外有没有简单的方法实现??
...全文
429 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinerwang 2004-07-30
  • 打赏
  • 举报
回复

UP



ryuginka 2004-07-30
  • 打赏
  • 举报
回复
iup
LGYAN 2004-07-30
  • 打赏
  • 举报
回复
Dim FileSys As Object
Set FileSys = CreateObject("Scripting.FileSystemObject")

返回临时目录 = FileSys.GetSpecialFolder(2)

返回的目录可能是短文件名,但是绝对不会妨碍使用的。
northwolves 2004-07-30
  • 打赏
  • 举报
回复
刚写了一个:

Option Explicit
Private Declare Function GetLongPathName Lib "kernel32" Alias "GetLongPathNameA" (ByVal lpszShortPath As String, ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Sub GetTEMPfolder(Optional ByVal showlong As Boolean = True)

Dim longname As String, shortname As String

shortname = Space(256)
GetTempPath Len(shortname), shortname

longname = Space(1024)
GetLongPathName shortname, longname, Len(longname)



MsgBox "Tempfolder : " & IIf(showlong = True, longname, shortname)

End Sub

Private Sub Command1_Click()
GetTEMPfolder '长文件名
GetTEMPfolder False '短文件名
End Sub
Mars.CN 2004-07-30
  • 打赏
  • 举报
回复
学习
rainstormmaster 2004-07-30
  • 打赏
  • 举报
回复
//显示的是C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp,但是当我往这个目录下新建一文件时却不能实现,
正确显示应该是C:\Documents and Settings\Administrator\Local Settings\Temp??

你需要把短文件名转化为长文件名
Geo_Cra 2004-07-30
  • 打赏
  • 举报
回复
不是说在windows下是无效的,而是说,你在后面加的文件名,必须是按照8.3原则,即文件名不超过8个字符,扩展名不超过3个字符
leasure 2004-07-30
  • 打赏
  • 举报
回复
那就是说在window下这个名称是无效的?

刚刚发现使用 Environ("TEMP") 也可实现
frankwong 2004-07-30
  • 打赏
  • 举报
回复
楼上没有引用文件系统对象库
Geo_Cra 2004-07-30
  • 打赏
  • 举报
回复
GetTempPath取得的是一个DOS名称,所以要建立文件也要按照8.3原则建立。
leasure 2004-07-30
  • 打赏
  • 举报
回复
to :haohaohappy
Dim Filesys As New FileSystemObject 用户定义类型未定义??
haohaohappy 2004-07-30
  • 打赏
  • 举报
回复

Private Sub WinntPathsub()
Dim Filesys As New FileSystemObject
Dim File As File
WinntPath = Filesys.GetSpecialFolder(0)
WinntName = Left(Filesys.GetSpecialFolder(0), 1)
WinntTemp = Filesys.GetSpecialFolder(2)
End Sub
leasure 2004-07-30
  • 打赏
  • 举报
回复
to:tcly
我还是想问清楚你的那个方法具体怎么实现的?
3x
leasure 2004-07-30
  • 打赏
  • 举报
回复
应该是楼上的楼上:)


楼上的我试了,是
C:\WINNT\temp
也是一个temp目录,反正我只是需要暂时保存一个文件,无所谓了!
就用这个吧
leasure 2004-07-30
  • 打赏
  • 举报
回复
不好意思,我不明白,楼上的,能说详细点吗?
northwolves 2004-07-30
  • 打赏
  • 举报
回复
再试试这个:
MsgBox Environ("WINDIR") & "\temp"
tcly 2004-07-30
  • 打赏
  • 举报
回复
::GetTempPath(sizeof(buf),buf);


我试过这个函数可以的。
leasure 2004-07-30
  • 打赏
  • 举报
回复
显示的是C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp,但是当我往这个目录下新建一文件时却不能实现,
正确显示应该是C:\Documents and Settings\Administrator\Local Settings\Temp??
northwolves 2004-07-30
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Function GetTEMPfolder() As String
Dim Str As String * 255
GetTempPath Len(Str) + 1, Str
GetTEMPfolder = Left$(Str, InStr(Str, Chr$(0)) - 2)
End Function

Private Sub Command1_Click()
MsgBox GetTEMPfolder
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧