"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C#: Gesamten Inhalt eines Ordners verschieben - Update: Code Problem

grassi3000 31.08.2004 - 18:10 857 6
Posts

grassi3000

radeon gefrierer
Avatar
Registered: Apr 2003
Location: AT/NÖ/Traisen
Posts: 1161
Tja, ich stehe vor dem Problem, dass ich in einem Freigegebenen Ordner, einen Beispielordner habe. Der Inhalt dieses Beispielordners soll nun in diverse andere Ordner im gleichen Basisverzeichnis kopiert werden und die Vollzugriffsberechtigung auf einen bestimmten Benutzer gesetzt werden.

Irgendwo hab ich gelesen, dass es keine Funktion gibt, womit man den Inhalt verschieben kann, man müsse dies File per File machen. (Was ich zwar nicht glaube).

Die Möglichkeit, den Beispielordner zu kopieren, und im Gleichen Basisverzeichnis wieder einfügen geht auch nicht, da ich mehr oder weniger gar nix mache (Ordnername bleibt gleich), und sobald ich umbenenne ist mein Beispielordner weg.

Hat jemand von euch nen Codeschnipsel, der sowas erledigt?
Wie kann ich ausserdem die Zugriffsberechtigungen setzen? hier werde ich aus der MSDN nicht schlau.
Bearbeitet von grassi3000 am 07.09.2004, 18:12

aNtraXx

trailer park king
Avatar
Registered: Apr 2002
Location: Linz
Posts: 6904
naja du könntest ja den system()-Befehl hernehmen und dann den systemspezifischen befehl einfügen. zB copy in dos

grassi3000

radeon gefrierer
Avatar
Registered: Apr 2003
Location: AT/NÖ/Traisen
Posts: 1161
mhm ... wusste nicht, dass das geht, aber wie bewege ich mich dann in den richtigen Netzwerkordnern herum?

Kannst du mir ein Beispiel geben?

Edit: Und wie setze ich dann die Ordnerberechtigung auf Vollzugriff für einen bestimmten Active Directory User?
Bearbeitet von grassi3000 am 01.09.2004, 20:47

aNtraXx

trailer park king
Avatar
Registered: Apr 2002
Location: Linz
Posts: 6904
mit dem system() befehl kannst alle consolenbefehle für ein system einbinden.

berechtigungen in linux gibst mit dem system wie folgt ein:

system("chmod 066 file");


kopieren:

system("cp ....");

grassi3000

radeon gefrierer
Avatar
Registered: Apr 2003
Location: AT/NÖ/Traisen
Posts: 1161
Zitat von aNtraXx
berechtigungen in linux gibst mit dem system wie folgt ein:
Ich Programmiere in C# in Windows

Das mit dem Hin und her kopieren hab ich glaub ich schon, mit gehts nur mehr ums Berechtigun setzen für einen Active Directory Benutzer

grassi3000

radeon gefrierer
Avatar
Registered: Apr 2003
Location: AT/NÖ/Traisen
Posts: 1161
So, ich bin grad dabei, dass ich mal die Ordnerstruktur spiegle. Der Algorithmus sollte eigentlich ein Tiefensuchealgorithmus(bzw Baumdurchmusterungsalgorithmus) werden, jedoch, tut er das nicht. Ich habe mein Verzeichnis, wo zuerst 1 verzeichnis drinnen ist, in diesem 2, usw.

ich nehme mal an, dass es da was mit meinen ordnervariablen hat, aber ich komme nicht dahinter, was genau:
Code: PHP
private void CreateUserDir(string basedir, string targetdir)
{
	
	Directory.CreateDirectory(@targetdir);
	
	string[] subdirs = Directory.GetDirectories(basedir);
	string[] files = Directory.GetFiles(basedir);
	//routerknoten
	foreach(string dir in subdirs)
	{
		DirectoryInfo temp = new DirectoryInfo(@dir);
		targetdir = targetdir + "\\" + temp.Name;
		CreateUserDir(dir, targetdir);
	}
	//datenknoten
	foreach(string file in files)
	{
			
		FileInfo temp = new FileInfo(@file);
		string targetfile = targetdir + "\\" + temp.Name;
				
		File.Copy(@file,@targetfile);
	}
		
}

Also wenn ich die ursprüngliche Ordnerstruktur so habe:
Code:
Anwendungsdaten
    Identities
    Microsoft
Cookies
    index.dat
ntuser.ini

dann sieht die kopierte version so aus:
Code:
Anwendungsdaten
    Cookies
        index.dat
        ntuser.ini
    Identities
        Microsoft
Bearbeitet von grassi3000 am 07.09.2004, 18:36

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12683
also, eigentlich mag ich ja gar nimmer über C# nachdenken, weil ich eh das den ganzen tag mache aber egal...

Code:
targetdir = targetdir + "\" + temp.Name;
diese Zeile ist schuld, dass er dir "Cookies" in Anwendungsdaten und nicht ins basedir schmeisst...

und ist die dateistruktur wirklich so, oder ist Identities evt. schon in Cookies drinnen?

was interessant wäre -> wie schaut denn subdirs aus? eigentlich sollte das vorgehen dann klarer werden wenn man weiß wie er die ordner einliest... (hab daheim nix zum kompilieren...)
Bearbeitet von Master99 am 07.09.2004, 19:26
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz