C# Besitzer einer Datei ändern ohne SetAccessControl()?

2 Antworten

Schaust dir evtl. mal das an: https://blog.salamandersoft.co.uk/index.php/2009/10/setting-the-owner-of-files-and-directories-in-c/

Pack die dort "erhältliche" Klasse in dein Projekt und ändere deinen Codeschnipsel wie folgt ab:

UnmanagedCode.GiveRestorePrivilege();
NTAccount account = new NTAccount("DOMÄNE", "Administrator");
FileInfo fileInfo = new FileInfo("C:\\Windows\GanzWichtigeDatei.xyz");
FileSecurity fileSecurity = file.GetAccessControl();
fileSecurity.SetOwner(account);
file.SetAccessControl(fileSecurity);

Könnte funktionieren... ^^

Du meinst, dass durch die "GiveRestorePrivilege()" Methode dann das "GetAccessControl()" und "SetAccessControl()" klappen könnte?

0

Also die Doku sagt, du könntest diese Exception auch bekommen, wenn die Datei Read-Only ist. Überprüfe doch mal, ob das Flag gesetzt ist...

...vlt. musst du den neuen Owner danach noch als AccessRule eintragen mit FileSecurity.AddAccessRule().

Der Read-Only Tag ist bei der Datei nicht gesetzt, und der Fehler tritt trotz AddAccessRule()-Methode weiterhin auf.

0
@JaskiHax

Hmm na dann kann ich dir auch nicht weiterhelfen. Ich weiß nur, dass Windoof auch so manchmal recht schrullig sein kann, wenn es um die Übernahme von Dateien geht. Ich hatte da auch schon im Explorer manchmal so meine Probleme, wo nicht das erwartete Ergebnis zu Stande kam... Gerade wenn es um die Übernahme von Dateien von "System" geht.

0

Okay trotzdem danke für die Antwort. Hat denn jemand anders eine Idee?

1

Buchstabe aus einer Text Datei zählen und die Anzahl ausgeben in Java/Eclipse?

Hallo an alle Programmierer,

ich habe ein einfaches Programm um eine Text Datei anzulegen in der etwas drinnen steht. In dem Falle einfach "Hallo Welt". (Siehe Quellcode unten)

Ich möchte nun wissen, wie ich es hinbekommen kann, dass in einem anderem Programm diese erstellte Datei geöffnet wird und mir dann den Buchstabel "L" zählt. Spricht bei der erstellten Text Datei mit Inhalt "Hallo Welt" möchte ich als Ausgabe bekommen: "Die Datei enthält 3 mal den Buchstaben "L".

Außerdem versuche ich das Ganze rückwärts auszugeben.

Großen Dank an jede Hilfe.

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class DateiHalloWelt {
   private static final String Filename = "C:\\test\\HalloWelt.txt";
   public static void main(String[] args) {
      BufferedWriter bw = null;
      FileWriter fw = null;
      try {
         String content = "Hallo Welt";
         fw = new FileWriter(Filename);
         bw = new BufferedWriter(fw);
         bw.write(content);
         System.out.println("Die Textdatei wurde erfolgreich in C:\\test erzeugt.");
         }
      catch (IOException e) {
         e.printStackTrace();
         }
      finally {
         try {
            if (bw != null)
               bw.close();
            if (fw != null)
               fw.close();
            }
catch (IOException ex) {
ex.printStackTrace();
         } } }}
...zur Frage

C# - Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird?

Hallo, ich habe ein Problem mit meiner programmierten Anwendung. Immer wenn ich auf den Erstellen-Button klicke kommt in einer textBox die Meldung:

Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Code:

private void buttonErstellen_Click(object sender, EventArgs e)
		{
			OpenFileDialog ofd = new OpenFileDialog();
			ofd.Filter = "XML|*.xml";
			if (ofd.ShowDialog() == DialogResult.OK)
			{
				try
				{
					textBoxPfad.Text = Path.GetDirectoryName(ofd.FileName);
					DeserializeXml(ofd.FileName);
				}
				catch (Exception exception)
				{
					textBoxStatus.Text = exception.Message;
				}
			}
		}
    public void DeserializeXml(string fileName)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(PersonenKonfiguration));
        XmlReader xmlFileReader;
        
        try
        {
            Person personen = new Person { Name = "Mustermann", Vorname = "Max", Wohnort = "Musterstadt" };
            
            xmlFileReader = XmlReader.Create(fileName);
            StreamWriter writer = new StreamWriter(fileName);
            serializer.Deserialize(xmlFileReader);
            writer.Write(personen);
            textBoxStatus.Text = "Validierung abgeschlossen.";
        }
        catch (Exception ex)
        {
            textBoxStatus.Text = ex.Message;
        }
    }

...zur Frage

mit csharp zahl in microsoft access datenbank aufaddieren?

Immer wenn ich enter drücke wird 100 einem vorhandenem Wert in der Datenbank hinzugefügt. Ich habe bereits den sql Update Set Befehl und benötige nun eine Funktion für das Drücken der Enter Taste, die eine Variable zurückgibt, welche ich dann in den sql Befehl anfügen kann.

...zur Frage

Windows System bzw TrustedInstaller Dateien modifizieren?

Ich suche nach einer möglichkeit Dateien im system32 ordner umzubennen. Das soll ohne admin rechte funktionieren (ich weiß, sehr ambitioniert) Also am besten wäre es über ne batch, also cmd, oder phython. Was aber auch gut wäre wäre eine datei die beim booten ausgeführt wird und die datei modifiziert bevor windows läd und das blockt. Leider habe ich damit keine Erfahrung, in was schreibt man da, C, assembler ? Naja, danke schon mal, LG Twizzy

...zur Frage

Prozentzahlen Win7 hinten und in Win10 vorne?

Hallo,

bei meinem C# Programm werden, beim Update auf die Windows 10 Versionbzw in der Virtuellen Maschine, die Prozentzahlen vor der Zahl statt dahinter angezeigt.

Habt ihr Gründe dafür im Kopf?

MfG.

Marcel

...zur Frage

Wie kann ich mir auf Windows 10 admin rechte geben?

Hii ich kann mir nichts runterladen. Bei Edge steht Wende Sie sich an den Besitzer dieser Datei oder einen Admin, um diese Berechtigung zu erhalten. Ich bin der einigste User auf den PC

...zur Frage

Was möchtest Du wissen?