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

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_gesamten_inhalt_eines_ordners_verschieben_update_123398/page_1 - zur Vollversion wechseln!


grassi3000 schrieb am 31.08.2004 um 18:10

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.


aNtraXx schrieb am 01.09.2004 um 00:13

naja du könntest ja den system()-Befehl hernehmen und dann den systemspezifischen befehl einfügen. zB copy in dos


grassi3000 schrieb am 01.09.2004 um 18:56

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?


aNtraXx schrieb am 02.09.2004 um 15:34

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 schrieb am 06.09.2004 um 19:57

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 schrieb am 07.09.2004 um 18:20

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


Master99 schrieb am 07.09.2004 um 19:24

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...)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025