كيفية إنشاء مسار إلى ملف مؤقت على ويندوز XP/Vista
-
01-07-2019 - |
سؤال
ما هي أفضل طريقة للقيام بذلك ؟ tmpnam() إرجاع مسار إلى الملف في جذر محرك الأقراص, التي تتطلب امتيازات المسؤول على نظام التشغيل Windows Vista, لذلك هذا ليس خيارا.
المحلول
GetTempPath و GetTempFileName يجب أن تعمل.
نصائح أخرى
متغير البيئة %TEMP% على ويندوز النقاط للمستخدمين دليل temp.
في مدارة C++ يمكنك الاتصال المسار::GetTempFileName() والتي سوف تعطيك ملف مؤقت في المستخدمين دليل temp (التي يمكن العثور عليها باستخدام المسار::GetTempPath() ).GetTempFileName() في الأساس يعطي فقط لك مسار الملف في المجلد %TEMP% المسار باستخدام GUID كما في اسم الملف.ثم يمكنك استخدام هذا المسار إلى إنشاء الملف و تفعل ما تريد مع ذلك.هل يمكن أن تفعل منطق مشابه في أي لغة من الوصول إلى العمليات الحالية متغيرات البيئة.
نأمل أن يساعد ،
مارتن.
هل حاولت مع متغيرات البيئة TEMP و TMP إلى دليل للكتابة قبل كل شيء ؟ إلى تغيير متغيرات البيئة في XP (لم تكن مألوفة مع ويندوز فيستا) ، تذهب إلى خصائص النظام [متقدم] tab [متغيرات البيئة] زر.
ربما يمكنك استخدام Win32 طريقة GetTempPath() في kernel32.dll.هذه هي ملفوفة في .صافي من قبل النظام.IO.مسار.GetTempFileName().
على XP وهذا يعود المسار في C:\Documents and Settings\اسم المستخدم\إعدادات المحلية emp\, لذلك يجب أن لا تتطلب امتيازات المسؤول.
إذا كنت الرعاية حول إمكانية التشغيل المتداخل الرجل صفحة tmpnam يشير إلى:
tmpnam رجل الصفحة
BUGS
Never use this function. Use mkstemp(3) instead.
mkstemp رجل الصفحة
SYNOPSIS
#include <stdlib.h>
int mkstemp(char *template);
DESCRIPTION
The mkstemp() function generates a unique temporary file name from template. The last six characters of template must be
XXXXXX and these are replaced with a string that makes the filename unique. The file is then created with mode read/write
ولكن كل هذه تشير إلى أن كنت قد أعدت القالب الخاص بك مسبوقة من محتويات متغير البيئة TMP.