2010-11-15 48 views
0

我有一个VB程序创建一个临时PDF文件,然后打开Outlook并附加文件。我在应用程序路径(程序运行的位置 - 通常是C:\ Program Files \ ProgamName)中创建该文件。这在XP中正常工作,因为它似乎没有疯狂的权限问题。但是在Windows 7中,该文件不会出现。没有错误,该文件不存在于该位置。在Windows 7上使用VB创建一个临时文件PC

我已将路径更改为C:\的根目录,但这也不起作用。我怀疑这是与W7虚拟化有关,所以问题是我可以在哪里创建一个文件,然后我可以再次访问?

我试图避免在服务器上的共享上创建它,但它看起来像这是唯一的地方,因为似乎并没有很多用户可以在Windows 7中写入文件的地方。

当然,必须有一个用户可以访问(无需管理员)创建文件的位置。甚至不要让我开始在W7上使用注册表的乐趣!

感谢

帕特里克

+1

“疯狂的权限问题”存在于XP中,而不是Windows 7.允许任何随机程序写入\ windows或\ Program Files文件是疯狂的。我更喜欢我的电脑没有病毒,所以我欢迎我们新的UAC霸主。 – Will 2010-11-15 13:27:37

回答

-2

编辑:尽管下面的工作,SLaks指出,这是不好的做法,并临时文件不会得到清理。

尝试%HOMEPATH% - 这是用户文档文件夹的环境变量,无论您使用的是哪个Windows版本,都应该能够正常工作。

在你曾经有过换句话说:

"c:\programfiles\programname\tempFileName" 

使用:

"%HOMEPATH%\tempFileName" 
+2

**请勿在我的文档中删除临时垃圾** – SLaks 2010-11-15 13:09:09

+0

这很糟糕。你会让用户将垃圾箱归档。 – Migol 2010-11-15 13:18:35

3

您需要创建在系统的临时目录中的文件,您可以通过调用Path.GetTempPath()找到。

通常,程序只应写入用户的Application Data(或Temp)目录中的文件,并且只能在HKEY_CURRENT_USER中写入注册表项。 (这是任何版本的Windows真)
如果你遵循这些原则,你会不会有在Windwos Vista或任何麻烦7.
你永远不应该将信息写入到由多个用户共享的地方。

相关问题