Avatar billede chrisrj Forsker
17. oktober 2007 - 10:10 Der er 2 kommentarer og
1 løsning

Skriv til fil oprettet af anden bruger

Hejsa

Jeg har et forholdsvist simpelt problem, som jeg ikke selv kan finde en løsning på.

Jeg har lavet et program der bruger en tekst fil. programmet bruges af flere brugere på samme maskine, men når bruger2 prøver at skrive til den fil bruger1 har oprettet, får jeg ikke lov til det.

Jeg har prøvet at kigge på noget med FileIOPermissionAccess ( http://msdn2.microsoft.com/en-us/library/system.security.permissions.fileiopermission(VS.80).aspx ), men jeg kan ikke finde nogle eksempler der viser hvordan jeg bruger det ifb. med skrivningen til fil! :((

Min fil kode:
        Dim FileWriter As System.IO.StreamWriter, OverWriteSvar, Sti As String
       
        Sti = "C:\test\MailConfig.cfg"

        If Not My.Computer.FileSystem.FileExists(Sti) Then
            Dim NewFile As New FileStream(Sti, FileMode.OpenOrCreate, FileAccess.ReadWrite)

            NewFile.Close()
            NewFile = Nothing

            If Not My.Computer.FileSystem.FileExists(Sti) Then
                MsgBox("Fejl, kunne ikke finde eller lave 'MailConfig.cfg'")
                Filetest = False
                Exit Function
            End If
        Else
            'Filen 'MailConfig.cfg' findes allerede. Er du sikker på du vil overskrive denne?
        End If

        Dim strWriter As String, strLineSplitter() As String
        Dim i As Integer, j As Integer, Datosvar

        On Error GoTo FileError

        FileWriter = My.Computer.FileSystem.OpenTextFileWriter(Sti, True, Encoding.Unicode)

        strWriter = "test"
        FileWriter.WriteLine(strWriter)

        FileWriter.Close()
        FileWriter = Nothing

        Filetest = True
        Exit Function
Avatar billede nielle Nybegynder
17. oktober 2007 - 11:12 #1
Noget i denne stil?

        Dim FileWriter As System.IO.StreamWriter, OverWriteSvar, Sti As String

        Sti = "C:\\test\\MailConfig.cfg"

        If Not My.Computer.FileSystem.FileExists(Sti) Then
            Dim NewFile As New FileStream(Sti, FileMode.OpenOrCreate, FileAccess.ReadWrite)

            NewFile.Close()
            NewFile = Nothing

            If Not My.Computer.FileSystem.FileExists(Sti) Then
                MsgBox("Fejl, kunne ikke finde eller lave 'MailConfig.cfg'")
                Filetest = False
                Exit Sub
            End If
        Else
            'Filen 'MailConfig.cfg' findes allerede. Er du sikker på du vil overskrive denne?
        End If

        Dim strWriter As String, strLineSplitter() As String
        Dim i As Integer, j As Integer, Datosvar

        On Error GoTo FileError

        FileWriter = My.Computer.FileSystem.OpenTextFileWriter(Sti, True, Encoding.Unicode)

        strWriter = "test"
        FileWriter.WriteLine(strWriter)

        FileWriter.Close()
        FileWriter = Nothing

        Dim fs As FileSecurity = File.GetAccessControl(Sti)
        fs.AddAccessRule(New FileSystemAccessRule("Brugere", FileSystemRights.FullControl, AccessControlType.Allow))
        File.SetAccessControl(Sti, fs)

        Filetest = True
        Exit Sub
Avatar billede chrisrj Forsker
17. oktober 2007 - 12:51 #2
Stort! Det spiller 100 % :D

Takker - smid et svar! ;)

Hvis jeg så også "bare" kunne "få" en lignende krølle til outlook 2003, ville min lykke være gjort. Men det er nok for meget forlangt. ;)
Avatar billede nielle Nybegynder
17. oktober 2007 - 13:10 #3
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester