Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.04.2007, 20:38

Datei wird von einem anderen Prozess verwendet

Hallo,
ich versuche mittels:

C-/C++-Quelltext

1
2
3
4
5
6
                 FileStream^ file = gcnew FileStream(fiTemp->DirectoryName + "/" + fiTemp->Name,
                                                     FileMode::Open,
                                                     FileAccess::Read,
                                                     FileShare::Read); 

                 StreamReader^ sr = gcnew StreamReader(file);

eine Log-Datei zu öffnen die von einem "fremden" Programm verwendet wird.
Ich bekomme eine Fehlermeldung das die angeforderte Datei von einem anderen Prozess verwendet wird.
ABER, der schnuckelige kleine Editor von Windows kann diese Datei problemslos öffnen.
Nun, wie macht er das? Oder besser gesagt was kann ich machen, damit mein Programm das auch kann?
THX for help...

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

2

15.04.2007, 21:24

Der Fehler ist bei mir auch schon aufgetreten.

Soweit ich weiß, hast du vergessen den Stream oder Reader / Writer zu schließen.
Allerdings brauchst du dann auch eine neue Datei, also lösch die alte.
Oder du startest den Rechner nochmal neu.

Mit freundlichen Grüßen,
WhiteMike

3

16.04.2007, 11:53

Zitat

Soweit ich weiß, hast du vergessen den Stream oder Reader / Writer zu schließen

Das Problem ist ja, das das fremde Programm die Datei zuerst geöffnet hat, wie kann ich den Stream von dem schließen?
Oder wie macht der Editor das?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

16.04.2007, 14:47

Was heißt denn FileShare::Read für die Datei? ;)

5

16.04.2007, 15:46

Muss da was anderes hin? Oder was meinst du?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

16.04.2007, 15:57

Wenn der andere Prozess versucht in die Datei zu schreiben sollte da was andres hin, yo.
@D13_Dreinig

7

16.04.2007, 17:13

Und was?

Nur nochmal zum verständnis:
Ich muss lesen, der "fremde" Prozess schreibt.
Was muss denn da hin?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

16.04.2007, 17:38

Du versuchst dem fremdem Prozess zu verbieten in die Datei zu schreiben.
@D13_Dreinig

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

9

16.04.2007, 17:47

Zitat von »"grek40"«

Was heißt denn FileShare::Read für die Datei? ;)


ich denke mal das heißt sowas wie, dass die datei nur gelesen werden kannm falls sie schreibgeschützt oder so ist. :lol: ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

16.04.2007, 17:50

Nein, das heißt es nicht.

Zitat von »"msdn2"«


Allows subsequent opening of the file for reading. If this flag is not specified, any request to open the file for reading (by this process or another process) will fail until the file is closed. However, if this flag is specified additional permissions might still be needed to access the file.
@D13_Dreinig

Werbeanzeige