Help CreateDirectory

10 отговора 353 прегледа
#1

Help CreateDirectory

iskam da sazdam direktorija s teku6ta data i ne znam kak da go napravja, taka 4e vseki den da se sazdava nova direktorija s ime na datata.
Blagodarja vi predvaritelno
CreateDirectory('C:/',nil); ne mi var6i rabota.

Отговор
в отговор на Timo #2

Re: Help CreateDirectory

Ако това ти свърши работа. Създава директория с текущия ден, месец, година, час, минута, секунда.

function MyCreateDirectory(AStr: string): boolean;
begin
Result:=DirectoryExists(AStr);
if not Result then
begin
Result:=CreateDir(AStr);
if not Result then
raise Exception.Create(
'Не може да създаде директория '+ AStr);
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
AStr:String;
begin
AStr:=Format('C:\%s',[FormatDateTime('dd_mm_yyyy_hh_mm_ss',Now)]);
if not MyCreateDirectory(AStr) then
ShowMessage('Error');
end;

Отговор
в отговор на TRN #3

Re: Help CreateDirectory

TRN, blagodarja ti, to4no tova mi trjabva6e i si blaskam glavata dva dena .
Veselo izkarvane na praznicite

Отговор
в отговор на Timo #4

За пълнота :)

За пълнота прегледай и това:
function ForceDirectories(Dir: string): Boolean;

Предимството е, че по-лесно можеш да си направиш директория за годината с поддиректории за месеците и дните (не се налага да се правят 1000 проверки коя директория същестува).

Весело посрещане на 2006-та!

Отговор
в отговор на NikB #5

Re: За пълнота :)

Да. ForceDirectories е по добра, за създаване на всички директории едновременно (CreateDir създава субдиректория, само ако родителската съществува, иначе дава грешка - не може да се зададе C:\dir1\dir2, ако dir1 не съществува), но проверките не се избягват, самата функция ForceDirectories си ги прави.

Отговор
в отговор на Timo #6

Re: Help CreateDirectory

Намерих малко по добър начин, предлагам да го разгледате.
Благодарен съм за предложенията ви.

var
A,Y,M,D:String;
begin
A:='Directory';
Y:=Format('%s',[FormatDateTime('yyyy',Now)]);
M:=Format('%s',[FormatDateTime('mm',Now)]);
D:=Format('%s',[FormatDateTime('dd',Now)]);
ForceDirectories('C:\'+A+'\'+Y+'\'+M+'\'+D);
end;

Отговор
в отговор на Timo #7

Re: Help CreateDirectory

Като гледам върши работа, и не, че се заяждам, но теоретически Now се вика 3 пъти и е възможно датата да се смени през това време. Освен това като гледам хелпа е напълно достатъчно само едно извикване на FormatDateTime.

FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125);

Отговор
в отговор на Timo #8

Kyde e razlikata?

Kyde e razlikata?

Format('%s',[FormatDateTime('yyyy\mm\dd',Now)]);

Отговор
в отговор на Йopдaн #9

Re: за Йордан

Format('%s',[FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125)]);
и
Format('%s',[FormatDateTime('yyyy\mm\dd',Now)]);

не виждам разликата Now пак е на линия но не се вика по няколко пъти и теоретически защо ако се вика по няколко пъти мога да имам проблем?

Отговор
в отговор на Timo #10

Ами защото може да върне разлиано време

Ами защото може да върне разлиано време

Например:
Викаш го за часа и връща 11:59
викаш го за минутите и връща 12:00
и ти извеждаш 11:00

Или обратно, тогава ще изведеш 12:59

А то часа си е 11:59-12:00

Отговор
в отговор на NikB #11

Re: Ok

Da sega te razbrah kakvo ima6 v predvid, ne se bjah setil izob6to.
Thank.

Отговор