Dateien byteweise lesen und schreiben -> UnauthorizedAccessException

Asterix-Ac

Erfahrenes Mitglied
Hi Community,

ich versuche ein kleines Kopier-Tool für mich zu schreiben.
Die Assembly liest mit einem BinaryReader die Datei(en) byteweise
ein und soll sie anschließend wieder an einen anderen Ort mit einem BinaryWriter zurückschreiben. Das lesen klappt auch gut. Doch beim Konstruktor-Aufruf des FileStreams, um die Datei zurückzuschreiben, bekomme ich eine System.UnauthorizedAccessException. In der Exception steht ein WinIOError.
Das Googlen hat nach 3 Stunden immer noch nichts gebracht.
Am Besten, ich packe hier mal die Methode rein, die das Problem ist.

Danke schonmal im Vorraus. Ich hoffe, jemand kann mir helfen.

Asterix :)

Code:
private void btnStart_Click(object sender, System.EventArgs e)
{
	this.btnExit.Enabled = false;
	this.btnStop.Enabled = true;
	this.btnStart.Enabled = false;
	this.btnFileAdd.Enabled = false;
	this.btnFileRemove.Enabled = false;
	this.btnZiel.Enabled = false;
	this.prgsAll.Maximum = this.lstFiles.Items.Count;
	this.prgsAll.Value = 0;
			
	
	for(int i=0;i<this.lstFiles.Items.Count;i++)
	{
		this.prgsOne.Value = 0;
              FileInfo Fi = new FileInfo(this.lstFiles.Items[i].ToString());
		int fileLength = (int)Fi.Length;
		byte[] datei = new byte[fileLength];
		this.prgsOne.Maximum = fileLength*2;
		FileStream readStream = new FileStream(this.lstFiles.Items[i].ToString(),FileMode.Open);
		BinaryReader binReader = new BinaryReader(readStream);
		for(int b=0;b<fileLength;b++)
		{
			datei[b] = binReader.ReadByte();
			this.prgsOne.Value = b;
		}
		binReader.Close();
//              Hier (FileStream c'tor schmiert die Assembly ab)
                FileStream writeStream = new FileStream(this.lblDestinationFolder.Text,FileMode.Create,FileAccess.Write);
		BinaryWriter binWriter = new BinaryWriter(writeStream);
		for(int b=0;b<fileLength;b++)
		{
			binWriter.Write(datei[b]);
			this.prgsOne.Value = fileLength+b;
		}
		binWriter.Close();
		this.prgsAll.Value+=i;
	}
			
	this.btnStop_Click(null,null);
}

(Edit by Alex: Bitte unnötige Tabs entfernen da Zeilen sonst so lange werden.)
 
Zuletzt bearbeitet von einem Moderator:
Danke für die Mühe, doch ich habe den Fehler :

Sieh' Dir mal im StreamWriter - 'ctor das Label lblDestinationFolder.Text an.
Es enthällt NUR das Zielverzeichnis und nicht auch noch die Datei.
Jetzt funktioniert es wieder.

Danke aber ... :)

Asterix
 

Neue Beiträge

Zurück