C#: Gesamten Inhalt eines Ordners verschieben - Update: Code Problem
grassi3000 31.08.2004 - 18:10 857 6
grassi3000
radeon gefrierer
|
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
|
naja du könntest ja den system()-Befehl hernehmen und dann den systemspezifischen befehl einfügen. zB copy in dos
|
grassi3000
radeon gefrierer
|
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
|
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
|
berechtigungen in linux gibst mit dem system wie folgt ein: Ich Programmiere in C# in WindowsDas 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
|
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: 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: Anwendungsdaten
Identities
Microsoft
Cookies
index.dat
ntuser.ini
dann sieht die kopierte version so aus: Anwendungsdaten
Cookies
index.dat
ntuser.ini
Identities
Microsoft
Bearbeitet von grassi3000 am 07.09.2004, 18:36
|
Master99
verträumter realist
|
also, eigentlich mag ich ja gar nimmer über C# nachdenken, weil ich eh das den ganzen tag mache aber egal... 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
|