WinFuture-Forum.de: [.net] Schreibschutz Eines Ordners Aufheben Oder Setzen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[.net] Schreibschutz Eines Ordners Aufheben Oder Setzen gelöst


#1 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 06. Juni 2006 - 07:58

Hallo,

ich mochte gerne den Schreibschutz eines beliebigen Ordners setzen oder entfernen. Dabei sollen diese Informaitonen allerdings auch auf alle untergeordneten Dateien und Ordner übernommen werden...

Hat jemand eine Idee?

MFG

Don

Dieser Beitrag wurde von mo bearbeitet: 07. Juni 2006 - 12:10

0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 06. Juni 2006 - 08:18

for /f "delims=" %i in ('dir /s /b /a-r') do attrib "%i" +r

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 06. Juni 2006 - 08:28

Sorry, hatte vergessen zu schreiben das ich das in C# .NET 1.1 brauche ;-)
0

#4 Mitglied ist offline   constructor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 18. April 05
  • Reputation: 0

  geschrieben 06. Juni 2006 - 11:21

Hi Don,

über eine rekursive Funktion könntest du das Problem lösen.

Ohne es getestet/optimiert zu haben:
using System.IO;

....

private void Button1_Click(object sender, EventArgs e)
{
	SetDirectoryAttributes(@"C:\Testordner\", FileAttributes.ReadOnly);
}

private void SetDirectoryAttributes(string p_sDirectoryPath, FileAttributes p_FileAttributes)
{
	if(Directory.Exists(p_sDirectoryPath))
	{
		//Attribut des übergebenen Ordners setzen
		DirectoryInfo l_DirectoryInfo = new DirectoryInfo(p_sDirectoryPath);
		l_DirectoryInfo.Attributes = p_FileAttributes;
		//Unterordner ermitteln und Attribut setzen
		DirectoryInfo[] l_DirectoryInfoSub = l_DirectoryInfo.GetDirectories();
		System.Collections.IEnumerator l_IEnumerator = l_DirectoryInfoSub.GetEnumerator();
		while(l_IEnumerator.MoveNext())
		{
			DirectoryInfo l_DirectoryInfoCur = (DirectoryInfo)l_IEnumerator.Current;
			l_DirectoryInfoCur.Attributes = p_FileAttributes;
			//Rekursiver Aufruf für Unterordner des Unterordners
			if(l_DirectoryInfoCur.GetDirectories().Length > 0)
			{
				SetDirectoryAttributes(l_DirectoryInfoCur.FullName, p_FileAttributes);
			}
		}
	}
}


Grüße
0

#5 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 06. Juni 2006 - 11:33

Danke, das habe ich gesucht
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0