Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

Узнать могу ли я создать файл в папке   Найти похожие ветки 

 
Oleg_teacher   (2009-01-28 13:29) [0]

Програма используєт временний файл ... возникают проблеми с возможностю создавать их (допустим  в папке с програмою не всегда подходит, увидел что в некоторых даже папка Temp заблокирована). Буду пробовать создавать в других системных папках ... Но вопрос в следующем ка проверить могу ли я в етой папке создавать... я делаю пока так :
win_temp:="путь к папке в которою пробую записать";
try
AssignFile(f,win_temp+"1.txt");
rewrite(f);
writeln(f,"good");
CloseFile(f);
DeleteFile(win_temp+"1.txt");
except
если ошибка создания то здесь код на другую папку ...
end;
правильно ли ето, есть ли проще способ?


 
Правильный$Вася   (2009-01-28 13:36) [1]

{I-}
rewrite
{I+}
if( IOResult ...


 
Правильный$Вася   (2009-01-28 13:38) [2]


> Буду пробовать создавать в других системных папках

вот этого не надо
лучше "%userprofile%\Local Settings\Application Data\" или "%userprofile%\Local Settings\temp"


 
Anatoly Podgoretsky ©   (2009-01-28 13:39) [3]

Если папка Temp заблокирована, то это конец Виндоус.

Код неправильный, нет обработки try finally


 
Oleg_teacher   (2009-01-28 16:25) [4]


> Если папка Temp заблокирована, то это конец Виндоус.

ищу папочку темп так:
win_temp:="";
try
p := GetEnvironmentStrings;
 while p^ <> #0 do
 begin
   if pos("temp=",LowerCase(StrPas(p)))=1 then win_temp:=StrPas(p);
   inc(p, lStrLen(p) + 1);
 end;
delete(win_temp,1,5);
except
end;

У одного чела ето оказалося: c:\windows\temp а под "гость" у хр туда нет доступа ...


 
Oleg_teacher   (2009-01-28 16:27) [5]


> вот этого не надо

так и думал в aplication data или общие документи, или мои документи


 
{RASkov} ©   (2009-01-28 16:36) [6]

> [4] Oleg_teacher   (28.01.09 16:25)
> У одного чела ето оказалося: c:\windows\temp а под "гость"
> у хр туда нет доступа ...

Папок "ТЕМП" может быть более одной....


> ищу папочку темп так:

Может лучше так:
GetEnvironmentVariable("TEMP")
GetEnvironmentVariable("TMP")
GetTempPath


 
{RASkov} ©   (2009-01-28 16:37) [7]

> Может лучше так:
> GetEnvironmentVariable("TEMP")
> GetEnvironmentVariable("TMP")
> GetTempPath

это три варианта :) Наверняка есть еще)


 
Anatoly Podgoretsky ©   (2009-01-28 16:40) [8]

> {RASkov}  (28.01.2009 16:36:06)  [6]

Только это GetTempPath


 
Oleg_teacher   (2009-01-28 16:41) [9]

попробую еще и с помощью SHGetSpecialFolderPath


 
Oleg_teacher   (2009-01-28 16:55) [10]


> Код неправильный, нет обработки try finally

а зачем finally, че то я не разобрался?


 
Anatoly Podgoretsky ©   (2009-01-28 17:02) [11]

> Oleg_teacher  (28.01.2009 16:41:09)  [9]

Если нужен TEMP текущего пользователя, то приведеных методов достаточно, но по сути SHGetSpecialFolderPath конечно так более квалифицировано.


 
Anatoly Podgoretsky ©   (2009-01-28 17:03) [12]

> Oleg_teacher  (28.01.2009 16:55:10)  [10]

Если будет ошибка, то кто файл будет закрывать?


 
Oleg_teacher   (2009-01-28 17:10) [13]


> Если будет ошибка, то кто файл будет закрывать?

согласен ...

> но по сути SHGetSpecialFolderPath конечно так более квалифицировано

то есть таким способом оптимальнее да?


 
Anatoly Podgoretsky ©   (2009-01-28 19:25) [14]

> Oleg_teacher  (28.01.2009 17:10:13)  [13]

Скажи, что такое оптимальнее? Я же говорил, что более квалифицировано, меньше сюрпризов в будущем.



Страницы: 1 вся ветка

Текущий архив: 2009.03.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
2-1233134263
DeadMeat
2009-01-28 12:17
2009.03.29
New vs GetMem


2-1233305201
mobwar
2009-01-30 11:46
2009.03.29
Замена двух, трёх символов на один


2-1233660812
programmer90
2009-02-03 14:33
2009.03.29
Access Violation


1-1208325946
hitk
2008-04-16 10:05
2009.03.29
показать scroll в ListView


2-1233741002
AlexDan
2009-02-04 12:50
2009.03.29
О операторе if