2022-11-27 20:58:48 +07:00
Imports System . IO
2022-12-03 07:10:41 +07:00
Imports System . IO . Compression
2022-11-27 20:58:48 +07:00
Public Class Uni_FileSkimmer
Public CurrentDir As String
Dim FileType As Integer
Dim ItemsDeleted As Integer
Private Sub Uni_FileSkimmer_Load ( sender As Object , e As EventArgs ) Handles MyBase . Load
2022-11-27 21:27:36 +07:00
CheckAvailable ( )
2022-11-27 20:58:48 +07:00
'End thingy
CurrentDir = Strings . OnceInfo ( 1 )
txt_AddressBar . Text = CurrentDir . Replace ( Strings . OnceInfo ( 1 ) , " !\ " )
ShowContent ( )
End Sub
2022-11-27 21:27:36 +07:00
Private Sub CheckAvailable ( )
2022-12-03 07:10:41 +07:00
If Strings . AvailableFeature ( 47 ) = 1 Then
btn_Delete . Image = My . Resources . FileSkimmerFunctionIcons . largeico_deletefile
DeleteToolStripMenuItem . Visible = True
Else
btn_Delete . Image = My . Resources . FileSkimmerFunctionIcons . largeico_unknown
btn_Delete . Text = " ??? "
DeleteToolStripMenuItem . Visible = False
End If
If Strings . AvailableFeature ( 48 ) = 1 Then
btn_Compress . Image = My . Resources . FileSkimmerFunctionIcons . largeico_compress
CompressToolStripMenuItem . Visible = True
Else
btn_Compress . Image = My . Resources . FileSkimmerFunctionIcons . largeico_unknown
btn_Compress . Text = " ??? "
CompressToolStripMenuItem . Visible = False
End If
If Strings . AvailableFeature ( 49 ) = 1 Then
PropertyPaneToolStripMenuItem . Checked = True
pnl_Properties . Visible = True
Else
PropertyPaneToolStripMenuItem . Checked = False
PropertyPaneToolStripMenuItem . Visible = False
pnl_Properties . Visible = False
End If
If Strings . AvailableFeature ( 50 ) = 1 Then
JobBarToolStripMenuItem . Checked = True
pnl_JobBar . Visible = True
Else
JobBarToolStripMenuItem . Checked = False
JobBarToolStripMenuItem . Visible = False
pnl_JobBar . Visible = False
End If
'Sets icons for buttons in here, for some reason
btn_NewFolder . Image = My . Resources . FileSkimmerFunctionIcons . largeico_unknown
btn_NewFolder . Text = " ??? "
btn_Rename . Image = My . Resources . FileSkimmerFunctionIcons . largeico_unknown
btn_Rename . Text = " ??? "
btn_CopyPath . Image = My . Resources . FileSkimmerFunctionIcons . largeico_unknown
btn_CopyPath . Text = " ??? "
If Strings . AvailableFeature ( 51 ) = 1 Then
Else
cmb_Layout . Items . Remove ( " Small Icons " )
End If
If Strings . AvailableFeature ( 52 ) = 1 Then
Else
cmb_Layout . Items . Remove ( " List " )
End If
btn_Up . BackgroundImage = My . Resources . FileSkimmerFunctionIcons . ico_up1
btn_Refresh . BackgroundImage = My . Resources . FileSkimmerFunctionIcons . ico_refresh
2022-11-27 21:27:36 +07:00
End Sub
2022-11-27 20:58:48 +07:00
Private Sub PropertyPaneToolStripMenuItem_Click ( sender As Object , e As EventArgs ) Handles PropertyPaneToolStripMenuItem . Click
If PropertyPaneToolStripMenuItem . CheckState = False Then
pnl_Properties . Visible = False
Else
pnl_Properties . Visible = True
End If
End Sub
2022-12-03 07:10:41 +07:00
Private Sub JobBarToolStripMenuItem_Click ( sender As Object , e As EventArgs ) Handles JobBarToolStripMenuItem . Click
If JobBarToolStripMenuItem . CheckState = False Then
pnl_JobBar . Visible = False
Else
pnl_JobBar . Visible = True
End If
End Sub
Private Sub CompressToolStripMenuItem_Click ( sender As Object , e As EventArgs ) Handles CompressToolStripMenuItem . Click
If Strings . AvailableFeature ( 48 ) = 1 Then
FS_Compression ( )
End If
End Sub
Private Sub DeleteToolStripMenuItem_Click ( sender As Object , e As EventArgs ) Handles DeleteToolStripMenuItem . Click
FS_Delete ( )
End Sub
2022-11-27 20:58:48 +07:00
Private Sub CloseToolStripMenuItem_Click ( sender As Object , e As EventArgs ) Handles CloseToolStripMenuItem . Click
Dispose ( )
End Sub
2022-12-03 07:10:41 +07:00
Private Sub btn_Delete_Click ( sender As Object , e As EventArgs ) Handles btn_Delete . Click
FS_Delete ( )
End Sub
Private Sub btn_Compress_Click ( sender As Object , e As EventArgs ) Handles btn_Compress . Click
If Strings . AvailableFeature ( 48 ) = 1 Then
FS_Compression ( )
Else
End If
End Sub
2022-11-28 08:15:19 +07:00
Private Sub cmb_Layout_SelectedIndexChanged ( sender As Object , e As EventArgs ) Handles cmb_Layout . SelectedIndexChanged
Select Case cmb_Layout . SelectedItem . ToString
Case " Large Icons "
lsv_Content . View = View . LargeIcon
Case " Small Icons "
lsv_Content . View = View . SmallIcon
Case " List "
lsv_Content . View = View . List
End Select
End Sub
Private Sub cmb_Layout_DrawItem ( ByVal sender As Object , ByVal e As System . Windows . Forms . DrawItemEventArgs ) Handles cmb_Layout . DrawItem
e . DrawBackground ( )
If ( e . State And DrawItemState . Selected ) = DrawItemState . Selected Then
e . Graphics . FillRectangle ( Brushes . Black , e . Bounds )
End If
Dim sf As New StringFormat
Using b As New SolidBrush ( e . ForeColor )
e . Graphics . DrawString ( cmb_Layout . GetItemText ( cmb_Layout . Items ( e . Index ) ) , e . Font , b , e . Bounds , sf )
End Using
e . DrawFocusRectangle ( )
End Sub
2022-11-27 20:58:48 +07:00
Private Sub btn_Up_Click ( sender As Object , e As EventArgs ) Handles btn_Up . Click
2022-11-27 21:27:36 +07:00
Try
2022-11-28 08:15:19 +07:00
If txt_AddressBar . Text = " !\ " Or txt_AddressBar . Text = " ! " Then
2022-11-27 20:58:48 +07:00
2022-11-27 21:27:36 +07:00
Else
Dim directoryInfo As System . IO . DirectoryInfo
directoryInfo = System . IO . Directory . GetParent ( CurrentDir . Replace ( " !\ " , Strings . OnceInfo ( 1 ) & " \ " ) )
'Dim endloop As Boolean = False
'lbllocation.Text = lbllocation.Text.Substring(0, lbllocation.Text.Length - 1)
'While endloop = False
' Try
' If lbllocation.Text.Substring(lbllocation.Text.Length - 1) = "/" Then
' endloop = True
' Else
' lbllocation.Text = lbllocation.Text.Substring(0, lbllocation.Text.Length - 1)
' End If
' Catch
' infobox.title = "File Skimmer - Error!"
' infobox.textinfo = "Unable to move into a higher directory due to error reading the requested folder on the drive." & Environment.NewLine & Environment.NewLine & "An error occured going up"
' infobox.Show()
' End Try
'End While
Dim DirFullName As String = directoryInfo . FullName
2022-11-28 08:15:19 +07:00
txt_AddressBar . Text = DirFullName . Replace ( Strings . OnceInfo ( 1 ) , " ! " )
2022-11-27 21:27:36 +07:00
CurrentDir = DirFullName
2022-12-03 23:16:06 +07:00
If txt_AddressBar . Text = " ! " Then
txt_AddressBar . Text = txt_AddressBar . Text & " \ "
End If
2022-11-27 21:27:36 +07:00
ShowContent ( )
End If
Catch ex As Exception
End Try
End Sub
Private Sub btn_Refresh_Click ( sender As Object , e As EventArgs ) Handles btn_Refresh . Click
ShowContent ( )
2022-11-27 20:58:48 +07:00
End Sub
2022-11-28 08:15:19 +07:00
Private Sub txt_AddressBar_TextChanged ( sender As Object , e As KeyEventArgs ) Handles txt_AddressBar . KeyDown
If e . KeyCode = Keys . Enter Then
If txt_AddressBar . Text Like " !* " Then
Dim BackupCurrentDir As String = txt_AddressBar . Text
BackupCurrentDir = BackupCurrentDir . Replace ( " ! " , Strings . OnceInfo ( 1 ) )
If BackupCurrentDir Like " *.* " Then
Else
If Directory . Exists ( BackupCurrentDir ) = True Then
txt_AddressBar . Text = BackupCurrentDir . Replace ( Strings . OnceInfo ( 1 ) , " ! " )
CurrentDir = BackupCurrentDir
ShowContent ( )
End If
End If
2022-12-03 07:10:41 +07:00
Else
txt_AddressBar . Text = " !\ "
CurrentDir = Strings . OnceInfo ( 1 )
ShowContent ( )
End If
2022-11-28 08:15:19 +07:00
End If
End Sub
2022-11-27 20:58:48 +07:00
Private Sub lsv_Content_MouseDoubleClick ( sender As Object , e As MouseEventArgs ) Handles lsv_Content . MouseDoubleClick
If txt_AddressBar . Text Like " *\ " Then
Else
txt_AddressBar . Text = txt_AddressBar . Text + " \ "
End If
ExecuteFile ( txt_AddressBar . Text + lsv_Content . SelectedItems ( 0 ) . Text )
End Sub
Private Sub lsv_Content_MouseClick ( sender As Object , e As MouseEventArgs ) Handles lsv_Content . MouseClick
Select Case e . Button
Case MouseButtons . Left
2022-12-03 07:10:41 +07:00
Dim IsCompressed As Boolean = False
If lsv_Content . SelectedItems ( 0 ) . Text Like " *.zip " Then
IsCompressed = True
End If
2022-11-27 20:58:48 +07:00
If pnl_Properties . Visible = True Then
Dim IsFile As Boolean = False
If lsv_Content . SelectedItems ( 0 ) . Text = Nothing Then
2022-11-28 08:15:19 +07:00
pic_Icon . Image = Nothing
lbl_filename . Visible = False
lbl_filetype . Visible = False
lbl_filesize . Visible = False
2022-11-27 20:58:48 +07:00
Else
2022-11-28 08:15:19 +07:00
lbl_filename . Visible = True
lbl_filetype . Visible = True
2022-11-27 20:58:48 +07:00
If lsv_Content . SelectedItems ( 0 ) . Text Like " *.txt " Then
pic_Icon . Image = My . Resources . FileSkimmerFileIcons . ico_textfile
lbl_filetype . Text = " Text File "
IsFile = True
2022-12-03 07:10:41 +07:00
ElseIf lsv_Content . SelectedItems ( 0 ) . Text Like " *.zip " Then
2022-12-03 23:16:06 +07:00
pic_Icon . Image = My . Resources . FileSkimmerFileIcons . ico_zip
2022-12-03 07:10:41 +07:00
lbl_filetype . Text = " Compressed ZIP File "
IsFile = True
2022-11-28 08:15:19 +07:00
ElseIf lsv_Content . SelectedItems ( 0 ) . Text Like " *.* " Then
pic_Icon . Image = My . Resources . FileSkimmerFileIcons . ico_unknown
lbl_filetype . Text = " Unknown File Type "
IsFile = True
2022-12-03 14:41:48 +07:00
ElseIf lsv_Content . SelectedItems ( 0 ) . Text = " ??? " Then
pic_Icon . Image = My . Resources . FileSkimmerFileIcons . ico_unknown
lbl_filetype . Text = " Unknown Type "
2022-11-27 20:58:48 +07:00
End If
If IsFile = True Then
2022-11-28 08:15:19 +07:00
lbl_filesize . Visible = True
Dim filinf As New IO . FileInfo ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text )
2022-11-27 20:58:48 +07:00
Dim filsize As Long = filinf . Length / 1024
Dim thesize As Integer = 1
Do
If filsize >= 1024 Then
filsize = filsize / 1024
thesize = thesize + 1
Else
Exit Do
End If
Loop
Select Case thesize
Case 1
lbl_filesize . Text = filsize & " KB "
Case 2
lbl_filesize . Text = filsize & " MB "
Case 3
lbl_filesize . Text = filsize & " GB "
End Select
Else
2022-11-28 08:15:19 +07:00
pic_Icon . Image = My . Resources . FileSkimmerFileIcons . ico_folder
2022-11-27 20:58:48 +07:00
lbl_filetype . Text = " Folder "
lbl_filesize . Visible = False
End If
lbl_filename . Text = lsv_Content . SelectedItems ( 0 ) . Text
End If
End If
2022-12-03 07:10:41 +07:00
If Strings . AvailableFeature ( 48 ) = 1 Then
If IsCompressed = True Then
btn_Compress . Image = My . Resources . FileSkimmerFunctionIcons . largeico_uncompress
btn_Compress . Text = " Extract "
CompressToolStripMenuItem . Text = " Extract "
Else
btn_Compress . Image = My . Resources . FileSkimmerFunctionIcons . largeico_compress
btn_Compress . Text = " Compress "
CompressToolStripMenuItem . Text = " Compress "
End If
End If
2022-11-27 20:58:48 +07:00
End Select
End Sub
Public Sub ExecuteFile ( path As String )
2022-12-03 23:16:06 +07:00
If path Like " *.* " Then
If path Like " *.txt " Then
ElseIf path Like " *.zip " Then
End If
2022-11-27 20:58:48 +07:00
Else
path = path . Replace ( " !\ " , Strings . OnceInfo ( 1 ) & " \ " )
If My . Computer . FileSystem . DirectoryExists ( path ) Then
CurrentDir = path
txt_AddressBar . Text = CurrentDir . Replace ( Strings . OnceInfo ( 1 ) , " ! " )
ShowContent ( )
Else
End If
End If
End Sub
Public Sub ShowContent ( )
Show ( )
lsv_Content . Items . Clear ( )
Dim Dir As New DirectoryInfo ( CurrentDir )
Dim Files As FileInfo ( ) = Dir . GetFiles ( )
Dim File As FileInfo
Dim Folders As DirectoryInfo ( ) = Dir . GetDirectories ( )
Dim Folder As DirectoryInfo
For Each Folder In Folders
Dim FolderName As String = Folder . Name
2022-12-03 07:10:41 +07:00
If Strings . AvailableFeature ( 45 ) = 1 Then
lsv_Content . Items . Add ( FolderName , 0 )
Else
2022-12-03 23:16:06 +07:00
lsv_Content . Items . Add ( " ??? " , 1 )
2022-12-03 07:10:41 +07:00
End If
2022-11-27 20:58:48 +07:00
Next
For Each File In Files
Dim filename As String = File . Name
Dim fileex As String = File . Extension
FileType = GetFileType ( fileex ) ( 0 )
2022-12-03 07:10:41 +07:00
If Strings . AvailableFeature ( 46 ) = 1 Then
lsv_Content . Items . Add ( filename , FileType )
Else
2022-12-03 23:16:06 +07:00
lsv_Content . Items . Add ( " ??? " , 1 )
2022-12-03 07:10:41 +07:00
End If
2022-11-27 20:58:48 +07:00
Next
End Sub
Public Function GetFileType ( fileex As String )
Dim FileType As Integer
Dim Program As String
Select Case fileex
Case " .txt "
2022-12-03 23:16:06 +07:00
FileType = 2
2022-11-27 20:58:48 +07:00
Program = " Text Document "
2022-12-03 23:16:06 +07:00
Case " .zip "
FileType = 3
Program = " Compressed ZIP file "
2022-11-27 20:58:48 +07:00
'Case ".doc"
' filetype = 5
' program = "Word Document"
'Case ".docx"
' filetype = 5
' program = "Word Document"
Case " .png "
FileType = 3
Program = " Picture "
Case " .jpg "
FileType = 3
Program = " Picture "
Case " .jpeg "
FileType = 3
Program = " Picture "
Case " .bmp "
FileType = 3
Program = " Bitmap "
Case " .gif "
FileType = 3
Program = " Animated Picture "
'Case ".avi"
' filetype = 10
' program = "Video Clip"
'Case ".m4v"
' filetype = 10
' program = "MPEG-4 Video"
'Case ".mp4"
' filetype = 10
' program = "MPEG-4 Video"
'Case ".wmv"
' filetype = 10
' program = "Windows Media Video"
'Case ".mp3"
' filetype = 9
' program = "MPEG-3 Song"
'Case ".zip"
' filetype = 11
' program = "Compressed Files"
'Case ".dll"
' filetype = 8
' program = "System File"
'Case ".exe"
' filetype = 6
' program = "MS-DOS Executable"
'Case ".sh"
' filetype = 7
' program = "BASH Script"
'Case ".bat"
' filetype = 6
' program = "MS-DOS Batch File"
'Case ".url"
' filetype = 5
' program = "Shortcut"
'Case ".htm", ".html"
' filetype = 5
' program = "Web Page"
Case Else
2022-12-03 23:16:06 +07:00
FileType = 1
2022-11-27 20:58:48 +07:00
Program = " Unknown File Type "
End Select
Dim array ( ) As String = { CStr ( FileType ) , Program }
Return ( array )
If txt_AddressBar . Text = " !\ " Then
'WARNING TO GET BACK BUTTON DISABLED
End If
End Function
2022-11-27 21:27:36 +07:00
2022-12-03 07:10:41 +07:00
Private Sub FS_Compression ( )
Dim NothingIn As Boolean = True
Dim ZipRandomInt As Integer
Dim ZipRandom As New Random
Dim UnzipRandomInt As Integer
Dim UnzipRandom As New Random
2022-12-03 23:16:06 +07:00
Try
If lsv_Content . SelectedItems ( 0 ) . Text Like " *.zip " Then
UnzipRandomInt = UnzipRandom . Next ( 1 , 1000000 )
Directory . CreateDirectory ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\UNZIP " & UnzipRandomInt )
ZipFile . ExtractToDirectory ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text , Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\UNZIP " & UnzipRandomInt )
Directory . CreateDirectory ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text . Replace ( " .zip " , " " ) )
CopyDirectory ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\UNZIP " & UnzipRandomInt , CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text . Replace ( " zip " , " " ) )
Directory . Delete ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\UNZIP " & UnzipRandomInt , True )
ElseIf lsv_Content . SelectedItems ( 0 ) . Text Like " *.* " Then
ZipRandomInt = ZipRandom . Next ( 1 , 1000000 )
Directory . CreateDirectory ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\ZIP " & ZipRandomInt )
File . Copy ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text , Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\ZIP " & ZipRandomInt & " \ " & lsv_Content . SelectedItems ( 0 ) . Text )
Dim Numbering As String = lsv_Content . SelectedItems ( 0 ) . Text . Length
Dim TheNaming As String = lsv_Content . SelectedItems ( 0 ) . Text . Substring ( 0 , Numbering - 3 ) & " zip "
ZipFile . CreateFromDirectory ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\ZIP " & ZipRandomInt , CurrentDir & " \ " & TheNaming )
Directory . Delete ( Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) & " \ShiftOS\SysShiftFS\ZIP " & ZipRandomInt , True )
2022-12-03 07:10:41 +07:00
NothingIn = False
2022-12-03 23:16:06 +07:00
ElseIf lsv_Content . SelectedItems ( 0 ) . Text Like " * " Then
If Directory . Exists ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text ) = True Then
ZipFile . CreateFromDirectory ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text , CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text & " .zip " )
NothingIn = False
Else
2022-12-03 07:10:41 +07:00
2022-12-03 23:16:06 +07:00
End If
2022-12-03 07:10:41 +07:00
End If
2022-12-03 23:16:06 +07:00
ShowContent ( )
Catch ex As Exception
End Try
2022-12-03 07:10:41 +07:00
End Sub
Private Sub FS_Delete ( )
If Strings . AvailableFeature ( 47 ) = 0 Then
Else
Try
If lsv_Content . SelectedItems ( 0 ) . Text Like " *.* " Then
File . Delete ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text )
ElseIf lsv_Content . SelectedItems ( 0 ) . Text Like " * " Then
Directory . Delete ( CurrentDir & " \ " & lsv_Content . SelectedItems ( 0 ) . Text )
End If
ShowContent ( )
Catch ex As Exception
End Try
End If
2022-11-27 21:27:36 +07:00
End Sub
2022-11-27 20:58:48 +07:00
End Class