Poslao: 09 Maj 2007 16:52
|
offline
- LittleHacker
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Pridružio: 13 Apr 2007
- Poruke: 452
- Gde živiš: Beograd
|
Posto u helpu nema moram da pitam
Kako da iz programa obrisem ili napravim folder
DeleteDir i DeleteFile nece
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 09 Maj 2007 17:40
|
offline
- loshmi_sr
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Građanin
- Pridružio: 08 Jan 2007
- Poruke: 279
- Gde živiš: Srbija
|
Ima više načina. Takođe u helpu ima objašnjenje, pogotovo ako je delphi 7 u pitanju.
Directories
Create a Directory :
CreateDir('c:\path');
Remove a Directory : RemoveDir('c:\path') or RmDir('c:\path')
Change a Directory : ChDir('c:\path')
Current Directory : GetCurrentDir
Check if a Directory exists : if DirectoryExists('c:\path') then ...
Files
Rename a File : RenameFile('file1.txt', 'file2.xyz')
Delete a File : DeleteFile('c:\text.txt')
Move a File : MoveFile('C:\file1.txt','D:\file1.txt');
Copy a File : CopyFile(Pchar(File1),PChar(File2),bFailIfExists)
Change a File's Extension : ChangeFileExt('test.txt', 'xls')
Check if a File exists : if FileExists('c:\filename.tst') then ...
Pa, onda:
uses
ShellApi;
function CopyDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function MoveDir(const fromDir, toDir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_MOVE;
fFlags := FOF_FILESONLY;
pFrom := PChar(fromDir + #0);
pTo := PChar(toDir)
end;
Result := (0 = ShFileOperation(fos));
end;
function DelDir(dir: string): Boolean;
var
fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_DELETE;
fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
pFrom := PChar(dir + #0);
end;
Result := (0 = ShFileOperation(fos));
end;
//kreiranje jos jedan nacin
...
uses
Dialogs;
begin
{$I-}
MkDir('c:\windows');
{$I+}
if IOResult <> 0 then
MessageDlg('Cannot Create Directory!',
mtWarning, [mbOK], 0)
else
MessageDlg('Directory Created.', mtInformation, [mbOK], 0);
end;
Na kraju, probaj i ovo:
var
iniFile : TStrings ;
begin
CreateDir('c:\DelphiDir') ;
iniFile := TStringList.Create;
iniFile.Add('[.ShellClassInfo]') ;
iniFile.Add('IconFile='+
GetEnvironmentVariable('windir')+'\system32\SHELL32.DLL') ;
iniFile.Add('IconIndex=47') ;
iniFile.add('InfoTip=This is a locked folder') ;
iniFile.SaveToFile('c:\DelphiDir\desktop.ini');
SysUtils.FileSetAttr('c:\DelphiDir',SysUtils.faReadOnly) ;
SysUtils.FileSetAttr('c:\DelphiDir\desktop.ini',
SysUtils.faSysFile or SysUtils.faHidden) ;
iniFile.Free ;
end;
uses
ShellApi;
procedure ShellFileOperation(fromFile: string; toFile: string; Flags: Integer);
var
shellinfo: TSHFileOpStructA;
begin
with shellinfo do
begin
wnd := Application.Handle;
wFunc := Flags;
pFrom := PChar(fromFile);
pTo := PChar(toFile);
end;
SHFileOperation(shellinfo);
end;
...
ShellFileOperation('c:\afile.txt', 'd:\afile2.txt', FO_COPY);
|
|
|
|
Poslao: 09 Maj 2007 18:10
|
offline
- LittleHacker
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Pridružio: 13 Apr 2007
- Poruke: 452
- Gde živiš: Beograd
|
Hvala ,
ja sam u helpu trazio pod make,
i tamo sam nasao MakeDir,
ali za C
|
|
|
|
|
Poslao: 09 Maj 2007 21:53
|
offline
- bobby
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
DeleteDir radi samo ukoliko je folder prazan.
|
|
|
|
Poslao: 10 Maj 2007 14:41
|
offline
- LittleHacker
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Pridružio: 13 Apr 2007
- Poruke: 452
- Gde živiš: Beograd
|
Imam jedan problem,
meni treba ovako nesto
RmDir(ExtractFilePath(application.exename) + '/Neki folder/');
MkDir(ExtractFilePath(application.exename) + '/Neki folder/');
Ustvari treba sve da obrise iz datog foldera,
i u kodovima koje sam dobio mogu da koristim samo tacne adrese(npr. c:\system), a nikada neznam gde ce korisniku program biti instaliran...
I u nekim od ovih kodova moze da se brise/pravi samo jedan folder...
Npr. moze C:\system a nemoze C:\ProgramFiles\Borland...
|
|
|
|
Poslao: 11 Maj 2007 02:30
|
offline
- NuLLCoDe
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Legendarni građanin
- Đuro Glumac
- dipl. ing. informatike
- Pridružio: 08 Feb 2004
- Poruke: 3640
- Gde živiš: ApAtIn
|
Sto se tice adrese gde ce korisnik instalirati softver, to mozes da resis preko registry kljuca.
Naima, prilikom instalacije koju radis sa nekim setum makerom tipa Install Shield i sl, upises u rgistry adresu foldera gde je instaliran. Kasnije tu adresu iz registry-a citas u delphiju i koristis je kao putanju do fajla.
Na primer, prilikom izrade instalacije nekog softvera napravis da upise u neki registry kljuc putanju instaliranog softvera. Kasnije taj registry zapis koristis umesto putanje.
Napomenuo bi jos jednu stvar... ukoliko korisnik nakon instalacije preimenuje ili premesti instalacioni direktorijum to sve pada u vodu.
Znaci, moras da realicujes, da se prilikom pokretanja programa proveri da li postoji softver u folderu do kog vodi putanja iz registry kljuca.
Verujem da sam bio dosta nejasan, ipak je 2:30AM, ali potrazi neki tutorial oko toga i bice ti jasnije, nije komplikovano.
|
|
|
|
Poslao: 11 Maj 2007 08:15
|
offline
- Srki_82
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Probaj da napises ovako:
MkDir(
IncludeTrailingBackslash(
ExtractFilePath(Application.ExeName)) +
'Neki folder');
Ako to ne bude radilo, mozda MkDir trazi PChar kao parametar (nisam proveravao). Ako je to slucaj, putanju upisi u promenljivu tipa string pa castuj u PChar.
|
|
|
|
Poslao: 11 Maj 2007 14:51
|
offline
- LittleHacker
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Ugledni građanin
- Pridružio: 13 Apr 2007
- Poruke: 452
- Gde živiš: Beograd
|
Null razumeo sam te , ali kako da znas da korisnik nece u samom startu(instalaciji) promeniti putanju, ja nista neinstaliram u C:\ProgramFiles
Uspeo sam da uradim ovo, kompajler neprijavljuje gresku, kada probam sa debuggerom putanja je dobra, ali opet nece da radi...
var
k : string;
......
k := ExtractFilePath(Application.ExeName)+'NekiFolder';
RemoveDir(Pchar(k));
CreateDir(Pchar(k));
Ima jos nesto, kada je debugger ukljucen i dodjem misem iza (k)
pise mi PChar(k)= Expression illegal in evaluator
Neznam sta to tacno znaci, ali cini mi se da k nemoze da se pretvori u PChar...
Bobby ako mozes na pp da mi das mail od Danny Thrope-a(ako mozes, posto si rekao da odgovara na mailove, a on ce verovatno znati) pa da ga pitam kako ovo da uradim, osim ako se neko neseti pre
|
|
|
|
Poslao: 11 Maj 2007 15:32
|
offline
- Srki_82
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Gde ti je IncludeTrailingBackslash? Da li si uopste procitao sta sam ti napisao!?
Dopuna: 11 Maj 2007 15:32
Sad sam probao i kod koji sam ti dao definitivno radi... mogao bi da probas to sto ti neko predlozi na forumu.
|
|
|
|