سؤال

ما هي أفضل طريقة للقيام بذلك ؟ 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top