Jeg tror hellere du lige må uddybe dit problem lidt mere - for du har vel ikke skrevet 'C:\Programmer' direkte et sted i din kildekode.
Hvis du mener at du forsøger at skrive en fil til et sted i Program Files, men ikke kan finde den bagefter, så er det sandsynligvis Folder Redirection du oplever (hvilket optræder når UAC er slået til, men man ikke kører programmet som administrator). Det bevirker at filen bliver gemt et andet sted, men bliver betragtet som liggende i Program Files når et ikke-admin program spørger til den.
Hvis det er tilfældet, så var det måske på tide at få skrevet programmet om, eller, hvis der er et kraftigt behov for at bruge Program Files, kræve admin-rettigheder - det er længe siden det betragtedes som en god ting at et program skrev noget i dets egen mappe (her ses selvfølgelig bort fra hvis du har en opdateringsfunktion i dit program, hvor man i stedet kræver admin-rettigheder) I stedet bør man placere indstillinger, m.v. i brugerens mappe
Synes godt om
Slettet bruger
31. august 2008 - 13:31#2
Du har ret jeg laver en sti der hedder: c:\programmer\mit software\program\backup
Hvis jeg bruger stien: c:\program files\mit software\program\backup
Hvis du vil lave en backup til din programmappe, så skal du køre programmet som administrator. Ellers ryger den nemlig over i C:\Users\brugernavn\AppData\Local\VirtualStore\Program Files\mit software\program\backup. Afhængigt af dit program vil en bedre placering nok være et sted under brugerens profil (typisk hans Application data, men det kan som sagt variere lidt - måske er det bedre at lade brugeren vælge).
Sådan har man faktisk skullet skrive sine programmer i mange år, aht. muligheden for at bruge flere profiler på samme computer, men mange har ikke gjort det fordi de har været vant til at alle alligevel er administratorer og dermed kan skrive overalt.
Hvis du ikke vil/kan lave om på det sted du gemmer til, og ikke vil køre som administrator, så har du to muligheder:
1) Rediger NTFS-rettighederne på mappen så den aktuelle bruger må skrive der (det skal gøres som admin) 2) Installer en service der kører som Lokalt system og giver dig mulighed for at bruge den til at lave din backup (den har de nødvendige rettigheder til at det bliver placeret det rigtige sted)
Husk i øvrigt på at det ikke kun er nye filer der bliver gemt et andet sted. Du får heller ikke lov til reelt at redigere eksisterende filer; de nye udgaver bliver også "ofre" for Folder redirection.
Synes godt om
Slettet bruger
31. august 2008 - 16:54#4
Tak for hjælpen jeg kan se nu at backup netop skriver til
sharon: Hvordan kan du håbe på et svar med et så tåget spørgsmål? Hvad med at fylde lidt boller på suppen fra starten af? Det sparer tid for os alle.
Synes godt om
Slettet bruger
31. august 2008 - 23:09#7
hrc...jeg fik faktisk info omkring hvor ens backup gemmes i Vista selvom stien er fastlagt i programmet. Den sti placering var jeg ikke klar over.
Jeg har tidligere postet det spørgtsmål uden en reel løsning og her fik jeg da en placering.
men her er den kode jeg bruger til xp:
var FOS :TSHFileOpStruct; AppPath : string; function DoCopy(FromPath, ToPath : string) : boolean; begin with FOS do //kopier databasen til biblioteket backup begin Wnd := 0; wFunc := FO_COPY; pFrom := pchar(FromPath+#0); pTo := pchar(ToPath); fFlags:= FOF_NOCONFIRMATION; end; Result:=SHFileOperation(FOS)=0; end;
begin AppPath:=ExtractFilePath(Application.ExeName); if DoCopy(AppPath + '\vinlist*',AppPath + '\backup') then if DoCopy(AppPAth + '\history*', AppPath + '\backup') then begin CopyDir('c:\programmer\mit program\images','c:\programmer\mit program\backup\images'); showmessagepos('dataerne er kopieret til backup',400,400); Backup.Close;
I xp virker det perfekt men i Vista placeres den et helt andet sted.
Det virker kun i xp hvis man kører med administrator rettigheder, ellers får man ikke lov til at skrive i c:\programmer. I vista er rettighederne skærpet yderligere. Det er derfor en dødssynd at skrive i c:\programmer, det har altid været imod microsofts retningslinjer, det er kun installationsprogrammer der bør gøre det.
Synes godt om
Slettet bruger
01. september 2008 - 14:06#9
ok tolderlund
Men det ville jo være rart at man kunne skrive til samme bib som exe filen eller i en mappe i samme bib ligger i.
Det et jo et sikkerhedsspørgsmål at programmet ikke bare kan skrive i c:\programmer. Men det er måske rart nok - for den programmør der ikke kender retningslinjerne eller ikke gider følge dem.
Synes godt om
Slettet bruger
01. september 2008 - 16:40#11
ok er helt med tolderlund "S"
Smider lige et spørgsmål senere om brugerbestemt placering af backup...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.