Bonjour,

Je cherche à lire des fichiers en ayant désactiver le cache windows.
J'ai trouvé la fonction qui me permet de faire cela, mais lorsque je commence à lire le fichier en question dans une boucle j'ai un exception apparait à la troisième boucle au stream.read:

"Handle does not support synchronous operations. The parameters to the FileStream constructor may need to be changed to indicate that the handle was opened asynchronously (that is, it was opened explicitly for overlapped I/O)."

J'ai essayé de remplacer False par True au paramètres de FileStrem, mais j'ai une autre exception qui m'impose le contraire, remplacer True par False.

Merci de votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Dim sFiles() As String
   Dim b(1024) As Byte
            sFiles = Directory.GetFiles("C:\files\toto.jpeg")
 
            For i = 0 To sFiles.GetUpperBound(0)
 
                Dim loader As New UnmanagedFileLoader(sFiles(i)) 
                Dim stream As FileStream = New FileStream(loader.Handle, FileAccess.Read, FIRST_BLOCK, False)
                Do While stream.Read(b, 0, b.Length) > 0
                    text = System.Text.Encoding.GetEncoding("iso-8859-1").GetChars(b)
                Loop
                stream.Close()
 
            Next
L'implémentation du UnmanagedFileLoader() se trouve ici:
http://msdn.microsoft.com/en-us/libr...ilehandle.aspx