AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Schreibschutz für Ordner setzen und aufheben
Thema durchsuchen
Ansicht
Themen-Optionen

Schreibschutz für Ordner setzen und aufheben

Ein Thema von simmi · begonnen am 8. Sep 2011 · letzter Beitrag vom 9. Sep 2011
Antwort Antwort
Benutzerbild von simmi
simmi

Registriert seit: 24. Nov 2004
Ort: Röbel/Müritz
112 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 12:11
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.
Uwe

Geändert von simmi ( 8. Sep 2011 um 12:28 Uhr)
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 12:50
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.
  Mit Zitat antworten Zitat
Benutzerbild von simmi
simmi

Registriert seit: 24. Nov 2004
Ort: Röbel/Müritz
112 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 13:11
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...
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 13:13
Geht es jetzt ganz simpel um das Schreibschutz-Attribut?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von simmi
simmi

Registriert seit: 24. Nov 2004
Ort: Röbel/Müritz
112 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 13:20
Mag für Dich ganz simpel sein, aber ich habe im Augenblick ein Brett vorm Kopf.
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 13:28
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 13:30
Ich hab jetzt die logische Struktur bzgl. FTP nicht ganz verstanden. Wo liegt der FTP und wie wird auf das Virtuelle Verzeichnis zugegriffen?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 14:35
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...
Ich glaube da hast Du etwas mißverstanden. Unter NTFS kannst du einem Benutzer und/oder einer Benutzergruppe "Dateiberechtigungen" geben und/oder entziehen. Das hat nichts mit Adminrechten zu tun.
Schau mal unter "Eigenschaften -> Sicherheit" des Verzeichnisses nach was da eingestellt ist.
Neben den üblichen Verdächtigen würde ich Leserechte für "Jeder" vergeben und Änderungsrechte für den/die Admin(s)/Datenpfleger.
Vererbung nicht vergessen, fertig ist die Laube

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

AW: Schreibschutz für Ordner setzen und aufheben

  Alt 8. Sep 2011, 14:39
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.
Das klingt ziemlich nach dem Einsatzgebiet eines SVN Servers. Der SVN Server ist dazu designet, dass es auf keinen Fall zum Datenverlust kommt. (Hardwarefehler ausgenommen) und ermöglicht eine synchronisierung in beide Richtungen. Du kannst auch Benutzerrechte anlegen, dass die meisten nur vom Server ziehen dürfen, aber nichts auf dem Server ändern dürfen.
Versionierung ist natürlich auch dabei.

Guck's dir zumindest mal an
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz