Gå til innhold

Sette FileAttributes.Compressed, hvordan?


Anbefalte innlegg

Å gjøre det på den vanlige måten (Dim X as new file : X.fileattributes = FileAttributes.Compressed) funker ikke...

 

Fant en funksjon for det (som brukte en eller annen DLL) på google en gang, men finner den ikke igjen...

 

Andre måter å gjøre det på? (i VB.NET)

Endret av Wubbable
Lenke til kommentar
Videoannonse
Annonse

Takker :D

 

Friend Module Compress

Private Declare Function DeviceIoControl Lib "kernel32.dll" (ByVal hDevice As IntPtr, ByVal dwIoControlCode As Integer, ByRef lpInBuffer As Short, ByVal nInBufferSize As Integer, ByVal lpOutBuffer As IntPtr, ByVal nOutBufferSize As Integer, ByRef lpBytesReturned As Integer, ByVal lpOverlapped As IntPtr) As Integer

Friend Function NTFSCompress(ByVal filename As String) As Integer

	Try

		Dim FSCTL_SET_COMPRESSION As Integer = 639040
		Dim COMPRESSION_FORMAT_DEFAULT As Short = 1

		Dim FS As FileStream = File.Open(filename, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, System.IO.FileShare.None)
		Dim Result As Integer = DeviceIoControl(FS.SafeFileHandle.DangerousGetHandle, FSCTL_SET_COMPRESSION, COMPRESSION_FORMAT_DEFAULT, 2, IntPtr.Zero, 0, 0, IntPtr.Zero)
		FS.Close()

		Return Result

	Catch

		Return 0

	End Try

End Function

End Module

 

Hvis noen andre trenger det også :)

Endret av Wubbable
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...