-
Notifications
You must be signed in to change notification settings - Fork 3
Environment
To use these methods and features, do not forget to put this line of code on top of your code file:
C#
using LeoCorpLibrary;
VB
Imports LeoCorpLibrary
This function is available in version 1.6 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetFilesCount()
method allows you to get the number of files in a specified directory. Returns a int
value.
Variation 1
Env.GetFilesCount(string directory) {...}
Value | Argument | Description |
---|---|---|
string | directory | Directory where you want to get the number of files |
Variation 2
Env.GetFilesCount(string directory, bool includeSubDirectories) {...}
Value | Argument | Description |
---|---|---|
string | directory | Directory where you want to get the number of files |
bool | includeSubDirectories | Count files that are located in the subdirectories |
Here's an example of usage:
C#
// Without subdirectories
int fileNumber = Env.GetFilesCount(@"C:\Users");
// With subdirectories
int fileNumberWithSubDirectories = Env.GetFilesCount(@"C:\Users", true);
VB
' Without subdirectories
Dim fileNumber As Integer = Env.GetFilesCount("C:/Users")
' With subdirectories
Dim fileNumberWithSubDirectories As Integer = Env.GetFilesCount("C:/Users", True)
This function is available in version 1.6 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetDirectoryCount
method allow you to get the number of directoires in a specified directory. Returns a int
value. It has two variation
Variation 1
Env.GetDirectoriesCount(string directory) {...}
Value | Argument | Description |
---|---|---|
string | directory | Directory where you want to get the number of directories |
Variation 2
Env.GetDirectoriesCount(string directory, bool includeSubDirectories) {...}
Value | Argument | Description |
---|---|---|
string | directory | Directory where you want to get the number of directories |
bool | includeSubDirectories | Also include directories in subdirectories |
Here's an example of usage:
C#
// Without subdirectories
int directoryNumber = Env.GetDirectoriesCount(@"C:\Users");
// With subdirectories
int directoryNumberWithSubDirectories = Env.GetDirectoriesCount(@"C:\Users", true);
VB
' Without subdirectories
Dim directoryNumber As Integer = Env.GetDirectoriesCount("C:/Users")
' With subdirectories
Dim directoryNumberWithSubDirectories As Integer = Env.GetDirectoriesCount("C:/Users", True)
This function is available in version 1.6 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetTotalDriveSpace
method allow you to get the total space of a specified volume. Returns a double
value.
It's in:
LeoCorpLibrary.Env.GetTotalDriveSpace()
It has two arguments:
Value | Argument | Description | Example |
---|---|---|---|
string | drive | Directory of the volume | C:\ |
UnitType | unitType | Type of unit to return | UnitType.Gigabyte |
Here's an example of usage:
C#
double totalSpace = Env.GetTotalDriveSpace(@"C:\", UnitType.Gigabyte);
VB
Dim totalSpace As Double = Env.GetTotalDriveSpace("C:/", UnitType.Gigabyte)
This function is available in version 1.6 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetDriveAvailableFreeSpace()
method allows you to get the available space of specified volume. Returns a double
value.
It's in:
LeoCorpLibrary.Env.GetDriveAvailableFreeSpace()
It has two arguments:
Value | Argument | Description | Example |
---|---|---|---|
string | drive | Directory of the volume | C:\ |
UnitType | unitType | Type of unit to return (MB, GB) | UnitType.Gigabyte |
Here's an example of usage:
C#
double freeSpace = Env.GetDriveAvailableFreeSpace(@"C:\", UnitType.Gigabyte);
VB
Dim freeSpace As Double = Env.GetDriveAvailableFreeSpace("C:/", UnitType.Gigabyte)
This function is available in version 1.6 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetOccupiedDriveSpace()
allows you to get the occupied drive space of specified volume. Returns a double
value.
It's in:
LeoCorpLibrary.Env.GetOccupiedDriveSpace()
It has two arguments:
Value | Argument | Description | Example |
---|---|---|---|
string | drive | Directory of the volume | C:\ |
UnitType | unitType | Type of unit to return (MB, GB) | UnitType.Gigabyte |
Here's an example of usage:
C#
double occupiedSpace = GetOccupiedDriveSpace(@"C:\", UnitType.Gigabyte);
VB
Dim occupiedSpace As Double = GetOccupiedDriveSpace("C:/", UnitType.Gigabyte)
This function is available in version 2.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The CountFileCharacters()
method enables you to get the number of characters in a specified file. It returns a int
value.
It's in:
LeoCorpLibrary.Env.CountFileCharacters()
It has two arguments:
Value | Argument | Description |
---|---|---|
string | fileName | The file's location where you wanna count characters |
Here's an example of usage:
C#
string filePath = @"C:\File.txt";
int characters = Env.CountFileCharacters(filePath);
VB
Dim filePath As String = "C:\\File.txt"
Dim characters As Integer = Env.CountFileCharacyers(filePath)
This function is available in version 2.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The CountFileCharactersAsync()
method enables you to count the number of characters in a file, asynchronously. It returns a Task<int>
value.
It's in:
LeoCorpLibrary.Env.CountFileCharactersAsync()
It has one argument:
Value | Argument | Description |
---|---|---|
string | fileName | The file's location where you wanna count characters |
Here's an example of usage:
C#
async void CountCharacters()
{
string filePath = @"C:\File.txt";
int count = await Env.CountFileCharactersAsync(filePath);
}
VB
Private Async Sub CountCharacters()
Dim filePath As String = "C:\\File.txt"
Dim count As Integer = Await Env.CountFileCharactersAsync(filePath)
End Sub
This function is available in version 3.7 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The IsDirectoryHasPermission()
method allows you to see if your program has permissions to write files/directories to a specified directory. It returns a bool
value.
It's in:
LeoCorpLibrary.Env.IsDirectoryHasPermission()
It has one argument:
Value | Argument | Description |
---|---|---|
string | filePath | The path to the directory |
Here's an example of usage:
C#
if (Env.IsDirectoryHasPermission("C:/Windows"))
{
File.Create("C:/Windows/file.txt");
}
VB
If Env.IsDirectoryHasPermission("C:/Windows") Then
File.Create("C:/Windows/file.txt")
End If
This function is available in version 1.9 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The GetWindowsVersion()
enables you to get the Windows version that the user is running. Returns a WindowsVersion
value.
It's in:
LeoCorpLibrary.Env.GetWindowsVersion()
Warning: This method works only if you specify in the Application Manifest, in the compatibilty section, that Windows 8, 8.1 and 10 are compatible with the software. Else, it will return Windows8
.
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
This file is an example. You can create this file by right-clicking on the project, then "Add", "New element", then "Application manifest" and "Add".
Here's an example of usage:
C#
WindowsVersion winver = Env.GetWindowsVersion(); // Obtenir la version
/*
Can return:
WindowsVersion.Windows7
WindowsVersion.Windows8
WindowsVersion.Windows81
WindowsVersion.Windows10
/*
VB
Dim winver As WindowsVersion = Env.GetWindowsVersion() ' Obtenir la version
' Can return:
' WindowsVersion.Windows7
' WindowsVersion.Windows8
' WindowsVersion.Windows81
' WindowsVersion.Windows10
This function is available in version 1.9 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The ExecuteAsAdmin()
allows you to execute a program in admin mode on Windows.
It's in:
LeoCorpLibrary.Env.ExecuteAsAdmin()
This method has two variation:
Variation 1
Env.ExecuteAsAdmin(Process process) {...}
Value | Argument | Description |
---|---|---|
Process | process | Process with StartInfo.FileName indicated |
Variation 2
Env.ExecuteAsAdmin(string filename) {...}
Value | Argument | Description |
---|---|---|
string | filename | The location of the sofware to launch in admin mode |
Here's an example of usage:
C#
// Variation 1
Process process = new Process();
process.StartInfo.FileName = @"C:\Windows\System32\cmd.exe";
Env.ExecuteAsAdmin(process);
// Variation 2
Env.ExecuteAsAdmin(@"C:\Windows\System32\cmd.exe");
VB
' Variation 1
Dim process As Process = New Process()
process.StartInfo.FileName = "C:/Windows/System32/cmd.exe"
Env.ExecuteAsAdmin(process)
' Variation 2
Env.ExecuteAsAdmin("C:/Windows/System32/cmd.exe")
This function is available in version 2.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
This method allows you to get the curent UnixTime or the UnixTime of a specific date/time. Returns a int
value.
It's in:
LeoCorpLibrary.Env.GetUnixTime()
It has two variation:
Variation 1
The variation does not accept any arguments.
Variation 2
This variation has an argument:
Value | Argument | Description |
---|---|---|
DateTime | date | The specific date to get the UnixTime of |
Here's an example of usage:
C#
// Variation 1
int curentUnixTime = Env.GetUnixTime();
// Variation 2
DateTime dateTime = new DateTime(1970, 1, 1);
int unixTime = Env.GetUnixTime(dateTime);
VB
' Variation 1
Dim curentUnixTime As Integer = Env.GetUnixTime()
' Variation 2
Dim dateTime As DateTime = New DateTime(1970, 1, 1)
Dim unixTime As Integer = Env.GetUnixTime(dateTime)
This function is available in version 2.2 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
This method allows you to get the user's %APPDATA%
path. Returns a string
value.
It's in:
LeoCorpLibrary.Env.GetAppDataPath()
It has no arguments.
Here's an example of usage:
C#
string appDataPath = Env.GetAppDataPath();
VB
dim appDataPath As String = Env.GetAppDataPath()
This function is available in version 3.4 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ❌ |
.NET Core 3.1 | ✔ | ❌ |
.NET Framework 4.7.2 | ✔ | ❌ |
.NET Framework 4.5 | ❌ | ❌ |
This method allows you to get the current position of the mouse cursor on the screen. It returns a Point
value (System.Drawing
).
It's in:
LeoCorpLibrary.Env.GetMouseCursorPosition()
It has no arguments.
Note: This method is using Windows Forms features, so use this method in Windows Forms projects only. If your project is using WPF, check GetMouseCursorPositionWPF().
Here's an example of usage:
C#
Point p = Env.GetMouseCursorPosition();
MessageBox.Show($"Mouse position: X = {p.X}; Y = {p.Y}");
VB
Dim p As Point = Env.GetMouseCursorPosition()
MessageBox.Show("Mouse position: X = " + p.X.ToString() + "; Y = " + p.Y.ToString())
This function is available in version 3.4 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ❌ |
.NET Core 3.1 | ✔ | ❌ |
.NET Framework 4.7.2 | ✔ | ❌ |
.NET Framework 4.5 | ❌ | ❌ |
This method allows you to get the current position of the mouse cursor on the screen. It returns a Point
value (System.Windows
).
It's in:
LeoCorpLibrary.Env.GetMouseCursorPositionWPF()
It has no arguments.
Here's an example of usage:
C#
Point p = Env.GetMouseCursorPosition();
MessageBox.Show($"Mouse position: X = {p.X}; Y = {p.Y}");
VB
Dim p As Point = Env.GetMouseCursorPosition()
MessageBox.Show("Mouse position: X = " + p.X.ToString() + "; Y = " + p.Y.ToString())
This function is available in version 3.4 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
This method allows you to convert UnixTime (int
) to a DateTime
object. Returns a DateTime
value.
It's in:
LeoCorpLibrary.Env.UnixTimeToDateTime()
It has one argument:
Value | Argument | Description |
---|---|---|
int | unixTime | The UnixTime to convert |
Here's an example of usage:
C#
int unixTime = 1615538407;
DateTime date = Env.UnixTimeToDateTime(unixTime); // 12/03/2021 @ 09:40:07
VB
Dim unixTime As Integer = 1615538407
Dim date As DateTime = Env.UnixTimeToDateTime(unixTime) ' 12/03/2021 @ 09:40:07
This function is available in version 3.4 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
This method allows you to check if a specific process is currently running. Returns a bool
value.
It's in:
LeoCorpLibrary.Env.IsProcessRunning()
It has one argument:
Value | Argument | Description |
---|---|---|
int | processName | The process name to find |
Here's an example of usage:
C#
if (IsProcessRunning("cmd.exe"))
{
MessageBox.Show("You have a command prompt running.")
}
VB
If IsProcessRunning("cmd.exe") Then
MessageBox.Show("You have a command prompt running.")
End If
This function is available in version 3.9 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ❌ |
.NET Core 3.1 | ✔ | ❌ |
.NET Framework 4.7.2 | ✔ | ❌ |
.NET Framework 4.5 | ❌ | ❌ |
This method allows you to launch an UWP app from its PackageFamilyName
and its Application Id
. You can find these informations by running in Windows Powershell (admin) the following command:
Get-AppxPackage | Select PackageFamilyName, InstallLocation
You can find the Application Id in the AppxManifest.xml file in
InstallLocation\AppxManifest.xml
This method isn't available in LeoCorpLibrary.Core.
It's in:
LeoCorpLibrary.Env.LaunchUWPApp()
It has two arguments:
Value | Argument | Description |
---|---|---|
string | packageFamilyName | The PackageFamilyName property |
string | applicationID | The Application Id property in the UWP AppxManifest.xml file |
Here's an example of usage:
C#
// Launch Minecraft UWP
Env.LaunchUWPApp("Microsoft.MinecraftUWP_8wekyb3d8bbwe", "App"); // Launch
VB
' Launch Minecraft UWP
Env.LaunchUWPApp("Microsoft.MinecraftUWP_8wekyb3d8bbwe", "App") ' Launch
This property is available in version 3.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The SystemDrive
property allows you to get the DriveInfo
of the system drive.
Warning: This property only works on Windows!
It's in:
LeoCorpLibrary.Env.SystemDrive
Here's an example of usage:
C#
DriveInfo sysDrive = Env.SystemDrive; // Get system drive
VB
Dim sysDrive As DriveInfo = Env.SystemDrive ' Get system drive
This property is available in version 3.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The AppDataPath
property allows you to get the %APPDATA%
directory path.
It's in:
LeoCorpLibrary.Env.AppDataPath
Here's an example of usage:
C#
string appDataPath = Env.AppDataPath; // Get %APPDATA%
VB
Dim appDataPath As String = Env.AppDataPath ' Get %APPDATA%
This property is available in version 3.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ❌ |
.NET Framework 4.5 | ❌ | ❌ |
The CurrentOperatingSystem
property allows you to get the current Operating system. It returns a OperatingSystems
enum:
- Windows
- macOS
- Linux
- Unknown
It's in:
LeoCorpLibrary.Env.CurrentOperatingSystem
Here's an example of usage:
C#
Console.WriteLine($"The current OS is {Env.CurrentOperatingSystem.ToString()}");
VB
Console.WriteLine("The current OS is" + Env.CurrentOperatingSystem.ToString())
This property is available in version 3.1 and higher.
Compatibility
Framework | LeoCorpLibrary | LeoCorpLibrary.Core |
---|---|---|
.NET 5 | ✔ | ✔ |
.NET Core 3.1 | ✔ | ✔ |
.NET Framework 4.7.2 | ✔ | ✔ |
.NET Framework 4.5 | ❌ | ✔ |
The UnixTime
property allows you to get the current Unix time.
It's in:
LeoCorpLibrary.Env.UnixTime
Here's an example of usage:
C#
while (true)
{
Console.WriteLine(Env.UnixTime.ToString());
Thread.Sleep(1000);
}
VB
While True
Console.WriteLine(Env.UnixTime.ToString())
Thread.Sleep(1000)
End While
© 2021 Léo Corporation and contributors