2013-06-25 8 views
1

У меня есть IBM DOORS, установленный на 64-разрядной версии Windows 7. Когда я запускаю функцию DOORS DXL tempFileName(), я получаю \ вместо чего-то вроде C: \ Users \\ AppData \ Local \ Temp. Я искал эту проблему, но ничего не вижу в этой проблеме. У кого-нибудь есть идея?Почему функция DOORS DXL tempFileName возвращает на Windows 7 64-bit?

Некоторые примеры кода, демонстрирующий проблему является ...

string productDetailsFile = tempFileName() 
print "productDetailsFile = " productDetailsFile "\n" 
if(canOpenFile(productDetailsFile, true)) 
print "Can write to file\n" 
Stream out = write productDetailsFile 
out << "Created by " doorsname " at " dateAndTime today "" 
if (null out) 
{ 
    print "Could not create file " productDetailsFile "" 
    halt 
} 
flush out 
close out 
string directory = getDirOf (productDetailsFile) 
print "directory = " directory "\n" 
string newFileName = directory NLS_("\\") NLS_("DOORS_") doorsInfo(infoVersion) (NLS_(".xml_new")) 
print "newFileName = " newFileName "\nAttempting to rename now\n" 
string errorMsg = renameFile(productDetailsFile, newFileName) 
if (!null errorMsg) 
{ 
    print "Rename failed with error - " errorMsg "\nTrying with modified file name now\n" 
    newFileName = directory NLS_("DOORS_") doorsInfo(infoVersion) (NLS_(".xml_new")) 
    print "newFileName = " newFileName "\nAttempting to rename now\n" 
    errorMsg = renameFile(productDetailsFile, newFileName) 
    if(!null errorMsg) 
     print "Still fails. Stopping script now, please send the DXL Output to Support" 
} 
else 
    print "Rename successful" 
+0

Можете ли вы разместить свой код тоже, пожалуйста. Я запускаю 'print tempFileName()' на 64-битной машине Windows 7 и получаю правильный ответ. –

+0

@Steve, вчера мы нашли основную причину. Для полноты я пошел вперед и разместил несколько примеров кода, которые продемонстрировали проблему. Спасибо за предложение помочь! – buzz3791

ответ

1

Основная причина в том, что компьютер под управлением имел будет Дверь «Системная переменная» из TEMP установлен в C: \ Users \ имя-пользователя \ AppData \ Local \ Temp и не было никаких «Пользовательских переменных» для TEMP.

Чтобы получить функцию работы:

  1. «Система переменной» для TEMP было изменено на «% SystemRoot% \ TEMP»
  2. создал другой «Системная переменная» под названием «TMP» и установить его Msgstr "% SystemRoot% \ TEMP".
  3. Создал 2 «Пользовательские переменные»: TEMP и TMP и установил их в «% USERPROFILE% \ AppData \ Local \ Temp».

 Смежные вопросы

  • Нет связанных вопросов^_^