ForceDirectories - winapi

0

Czy ktoś posiada ForceDirectories
(http://4programmers.net/Delphi/Modu%C5%82y/SysUtils/ForceDirectories)

w postaci tylko tej jednej funkcji? Ponieważ tworze program w winapi i zależy mi na jak najmniejszej wadze, a gdy dodam SysUtils do sekcji uses to waga pliku rośnie.

(chodzi mi o coś takiego, jak np. tutaj fileexists:

http://4programmers.net/Delphi/FAQ/Jak_sprawdzic_czy_plik_istnieje_w_WinApi

0

Odświeżam temat, naprawdę nikt tego nie wie? ;(

0
MeNi napisał(a)

naprawdę nikt tego nie wie?
ale czego ?

0

@up

Czy ktoś ma/zna/czy w ogóle istnieje możliwość zrobienia odpowiednika funkcji ForceDirectories w win api, żeby utrzymać małą wielkość programu.

0

potrzebujesz wersji Delphi w której są źródła tego modułu ?
PS to jest zdanie oznajmujące.

0

Możliwość istnieje. Bardzo prosto. Ścieżkę np. taką "..\program files\my prog\options" rozbijasz względem ukośników tak:
".."
"..\program files"
"..\program files\my prog"
"..\program files\my prog\options"
I tworzysz każdy folder po kolei. Mniej więcej będzie to tak wyglądać:

sciezka := '.\program files\my prog\options';
pozycja := Pos('\', sciezka);
while pozycja > 0 do
begin
  UtworzKatalog(Copy(sciezka, 1, pozycja - 1)); //tu trzeba zwrocic false, jesli katalog nie istnieje a nie dalo sie go utworzyc
  pozycja = PosEx('\', sciezka, pozycja + 1);
end;
UtworzKatalog(sciezka);//tu trzeba zwrocic false, jesli katalog nie istnieje a nie dalo sie go utworzyc

Dopracuj sobie ten kod. Pierwszy człon może być problematyczny, chyba, że na własne potrzeby obsłużysz tylko najprostsze przypadki.

0

Ewentualnie za pomocą skryptu w BAT

@echo off & setlocal enableextensions
set /P katalog="Wpisz nazwe katalogu:"
if exist %katalog% echo %katalog% istnieje! & goto :END
MD %katalog%
:: ewentualnie mozna tworzyc dodatkowe katalogi
:: MD %katalog%\JAKIS_KATALOG\JAKIS_POTDKATALOG
:END
exit

Czyli wystarczy skorzystać z

MD %katalog%\JAKIS_KATALOG\JAKIS_POTDKATALOG

1 użytkowników online, w tym zalogowanych: 0, gości: 1