Option Explicit On
Option Strict On
Option Infer Off
Imports System.IO
Module Module1
Private _FileMode As FileModes = FileModes.Invalid
Private Enum FileModes
Invalid = -1I
Copy = 0I
Delete = 1I
Move = 2I
Rename = 3I
End Enum
Public Sub Main()
Dim Args() As String = Environment.GetCommandLineArgs
If Args.Length > 2I Then
Select Case Args(1I).Trim.ToLower.Replace("/", String.Empty).Replace("\", String.Empty).Replace("-", String.Empty)
Case "d", "delete" : _FileMode = FileModes.Delete
Case "c", "copy" : _FileMode = FileModes.Copy
Case "m", "move" : _FileMode = FileModes.Move
Case "r", "rename" : _FileMode = FileModes.Rename
Case Else : _FileMode = FileModes.Invalid
End Select
Select Case _FileMode
Case FileModes.Delete
File.Delete(Args(2I).Trim)
Call OutputMessage("File '" & Path.GetFileName(Args(2I).Trim) & "' deleted successfully")
Case FileModes.Copy, FileModes.Move
If File.Exists(Args(2I).Trim) AndAlso Directory.Exists(Args(3I).Trim) Then
Select Case _FileMode
Case FileModes.Copy
File.Copy(Args(2I).Trim, Args(3I).Trim & Path.DirectorySeparatorChar & Path.GetFileName(Args(2I).Trim), True)
Call OutputMessage("File '" & Path.GetFileName(Args(2I).Trim) & "' copied successfully")
Case FileModes.Move
File.Move(Args(2I).Trim, Args(3I).Trim & Path.DirectorySeparatorChar & Path.GetFileName(Args(2I).Trim))
Call OutputMessage("File '" & Path.GetFileName(Args(2I).Trim) & "' moved successfully")
End Select
Else
Call OutputMessage("Something's wrong with the parameters")
End If
Case FileModes.Rename
If File.Exists(Args(2I).Trim) Then
File.Move(Args(2I).Trim, Path.GetDirectoryName(Args(2I).Trim) & Path.DirectorySeparatorChar & Args(3I).Trim)
Call OutputMessage("File '" & Args(2I).Trim & "' renamed successfully")
Else
Call OutputMessage("Error with source file")
End If
Case FileModes.Invalid : Call OutputMessage("Error with parameters")
End Select
Else
Call OutputMessage("Not enough parameters")
End If
End Sub
Private Sub OutputMessage(ByVal Msg As String)
Console.WriteLine(Msg)
Console.Read() 'Pause so user sees message
End Sub
End Module