Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Schreibschutz für Ordner setzen und aufheben (https://www.delphipraxis.net/162878-schreibschutz-fuer-ordner-setzen-und-aufheben.html)

simmi 8. Sep 2011 11:51

Schreibschutz für Ordner setzen und aufheben
 
Hallo,

ich möchte via ftp vom Server verschiedene Dateien in einem Ordner ablegen. Damit die Originalversionen der Dateien erhalten bleiben möchte ich den gesamten Ordner mit einem Schreibschutz versehen und für eine Aktualisierung der Dateien durch die Software den Schreibschutz aufheben können. Eine Kopie der Datei, die von der Software mit Daten gefüllt wird kann der Nutzer an einem anderen Ort speichern. Es handelt sich dabei um MS Officedateien (97-2010). Als Betriebssyteme werden nur XP und Win7 genutzt.:glaskugel:

Hat jemand eine Idee??

Luckie 8. Sep 2011 12:01

AW: Schreibschutz für Ordner setzen und aufheben
 
Rat mal was die Suche nach "schreibschutz" geliefert hat. ;)

himitsu 8. Sep 2011 12:09

AW: Schreibschutz für Ordner setzen und aufheben
 
Unterschiedliche FTP-Benutzer anlegen
- Einer mit ohne Schreibrechte für den normalen Zugriff
- Einer mit Schreibrechten, welchen das Updateprogramm verwendet

simmi 8. Sep 2011 12:11

AW: Schreibschutz für Ordner setzen und aufheben
 
Danke Luckie für diese äußerst hilfreiche Antwort

Es sind die gesamten Dokumentvorlagen des Unternehmens gepflegt nach DIN 9..., Es werden für verschiedene Projekte auch verschiedene Dokumentengruppen genutzt. Da läuft nach wie vor die BDE und die möchte ich weg bekommen. Meine Idee ist die, Ich habe eine MySQL Tabelle die Dokumentversionen, Zuordnungen und Dateinamen enthält, gleiche diese Daten mit dem lokalen Gerät bei bestehender Netzwerkverbindung ab und aktualisiere sie. Da die Rechner (Laptops) sich auch außerhalb unseres Intranets in dem der FTP Server läuft bewegen bracuhe ich einen lokalen Ordner.

Ich könnte jede Datei anfassen und den Schreibschutz setzen, aber ich würde mir gern diese Arbeit sparen und einfach einen Schreibschutz auf den gesamten Ordner setzen und natürlich wieder aufheben. Die vorhandenen Forumsbeiträge haben mir an dieser Stelle nicht wirklich helfen können.

hsg 8. Sep 2011 12:50

AW: Schreibschutz für Ordner setzen und aufheben
 
Da du XP und Win7 als BS hast, vermute ich mal, dass du NTFS als Dateisystem nutzt. Da kannst du doch allen Benutzern die Schreibrechte entziehen, nur ein spezieller Benutzer bekommt dann das Schreibrecht. Dein Programm muss dann nur als dieser Benutzer arbeiten und darf damit als einziges die Dateien bearbeiten.

simmi 8. Sep 2011 13:11

AW: Schreibschutz für Ordner setzen und aufheben
 
Zitat:

Dein Programm muss dann nur als dieser Benutzer arbeiten und darf damit als einziges die Dateien bearbeiten.
Das habe ich bereits versucht und wollte einem Programm Adminrechte geben, Windows 7 hat mir nur den dicken Daumen gezeigt. Zum anderen möchte mein Admin nicht, das da an den Nutzerrechten gestellt wird und er steht nun mal in der Nahrungskette über mir...

DeddyH 8. Sep 2011 13:13

AW: Schreibschutz für Ordner setzen und aufheben
 
Geht es jetzt ganz simpel um das Schreibschutz-Attribut?

simmi 8. Sep 2011 13:20

AW: Schreibschutz für Ordner setzen und aufheben
 
Mag für Dich ganz simpel sein, aber ich habe im Augenblick ein Brett vorm Kopf.

DeddyH 8. Sep 2011 13:28

AW: Schreibschutz für Ordner setzen und aufheben
 
Nur schnell heruntergetippt, enthält noch Verbesserungspotential:
Delphi-Quellcode:
procedure SetFileReadOnlyFlag(Directory: string; const mask: string = '*.*';
  Recursive: Boolean = false);
const
  faNewAnyFileEx = $00017FFF;
var
  Rec: TSearchRec;
begin
  Directory := IncludeTrailingPathDelimiter(Directory);
  if FindFirst(Directory + mask, faNewAnyFileEx, Rec) = 0 then
    try
      repeat
        if (Rec.Name <> '.') and (Rec.Name <> '..') then
          begin
            if (Rec.Attr and faDirectory) = faDirectory then
              begin
                if Recursive then
                  SetFileReadOnlyFlag(Directory + Rec.Name, mask, Recursive);
              end
            else
              FileSetAttr(Directory + Rec.Name, Rec.Attr or faReadOnly);
          end;
      until FindNext(Rec) <> 0;
    finally
      SysUtils.FindClose(Rec);
    end;
end;
Allerdings lässt sich der Schreibschutz im Normalfall mit 2 Mausklicks wieder entfernen, eine wirklich sichere Sache ist das also nicht.

Union 8. Sep 2011 13:30

AW: Schreibschutz für Ordner setzen und aufheben
 
Ich hab jetzt die logische Struktur bzgl. FTP nicht ganz verstanden. Wo liegt der FTP und wie wird auf das Virtuelle Verzeichnis zugegriffen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz