Compare commits

..
3 Commits
Author SHA1 Message Date
Manos f746d14b50 Release v4.0.0 - Source Code & Documentation
- Complete source code for Windows client, PS5 payload, and mobile app
- Updated README.md with v4.0.0 features
- Updated CHANGELOG.md with detailed changes
- Added .gitignore to exclude binaries
- Retry failed transfers feature
- Performance optimizations
- Bug fixes and stability improvements

Note: Binaries will be provided in GitHub Releases
2026-01-27 12:06:17 +02:00
Manos f376e35dee Release v4.0.0 - Source Code & Documentation
- Complete source code for Windows client, PS5 payload, and mobile app
- Updated README.md with v4.0.0 features
- Updated CHANGELOG.md with detailed changes
- Retry failed transfers feature
- Performance optimizations
- Bug fixes and stability improvements

Note: Binaries available in GitHub Releases due to file size limits
2026-01-27 12:03:48 +02:00
Manos fcae62cb19 Release v4.0.0 - Retry Feature & Stability Improvements 2026-01-27 12:02:25 +02:00
7136 changed files with 1064517 additions and 7381 deletions

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
# Build outputs
bin/
obj/
*.exe
*.dll
*.pdb
*.apk
*.aab
# Visual Studio
.vs/
*.user
*.suo
# Rider
.idea/
# Logs
*.log
-46
View File
@@ -1,51 +1,5 @@
# Changelog - PS5 Upload Suite
## Version 4.1.0 - Memory Optimization & Large File Handling (February 5, 2026)
### 🧠 Memory & Performance Improvements
#### 1. Large File Count Support (156K+ Files)
- **Fixed crash** with games containing 156,253+ files (e.g., Astrobot)
- **Removed massive dictionary** - No longer creates 156K FileInfo objects at once
- **Incremental calculation** - Total bytes calculated progressively during scan
- **Memory efficient** - Handles unlimited file counts without OutOfMemoryException
#### 2. Lock-Free Progress Tracking
- **ConcurrentDictionary** - Replaced Dictionary with thread-safe collections
- **Zero lock contention** - Eliminated `lock (_progressLock)` blocks
- **Atomic operations** - Uses `Interlocked.Add()` for progress updates
- **Smooth UI** - No stuttering from lock contention
#### 3. Auto Memory Cleanup
- **Completed files removed** - Dictionaries cleaned after file completion
- **Reduced memory footprint** - Only active uploads tracked
- **Prevents memory overflow** - Long-running uploads stay stable
#### 4. Reduced UI Stuttering
- **Batch logging** - Small files logged every 50 completions (up from 25)
- **Less UI pressure** - Fewer `Dispatcher.Invoke()` calls
- **Smoother experience** - Especially noticeable with 100K+ files
### 🔧 Technical Changes
- Changed `_fileProgressBytes` from Dictionary to ConcurrentDictionary
- Changed `_fileChunkProgressBytes` from Dictionary to ConcurrentDictionary
- Changed `_chunkLogLastBytes` from Dictionary to ConcurrentDictionary
- Removed `fileSizeLookup` dictionary creation (caused OutOfMemoryException)
- Increased `SmallFileLogBatchSize` from 25 to 50
- Added dictionary cleanup in file completion handlers
### 🐛 Bug Fixes
- Fixed application crash when uploading games with 156K+ files
- Fixed UI stuttering during small file uploads
- Fixed memory overflow from massive dictionary allocations
- Fixed lock contention causing UI freezes
### 📊 Tested With
- **Astrobot**: 156,253 files, 1,724 directories
- **Result**: Zero crashes, smooth upload, stable memory usage
---
## Version 4.0.0 - Retry Feature & Stability Improvements (January 27, 2026)
### ✨ New Features
+7 -7
View File
@@ -2,16 +2,16 @@
**By Manos**
**Version 4.1.0 - Memory Optimization & Large File Handling**
**Version 4.0.0 - Retry Feature & Stability Improvements**
Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s** upload speeds for large files using parallel chunked uploads!
⭐ **NEW in v4.1.0:**
- 🧠 **Memory Optimization** - Handles 156K+ files without crashes
- ⚡ **Reduced UI Stuttering** - Batch logging for smoother experience
- 🔧 **Lock-Free Operations** - ConcurrentDictionary for thread-safety
- 🧹 **Auto Memory Cleanup** - Completed files removed from tracking
- � **Incremental Processing** - No massive dictionary allocations
⭐ **NEW in v4.0.0:**
- � **Retry Failed Transfers** - Right-click context menu to retry failed uploads
- �️ **Clear All Fix** - Transfer history clear all button now works
- ⚡ **Optimized Performance** - 30-36 MB/s for large files, 8-12 MB/s for small files
- � **Improved Stability** - Fixed connection drops and buffer issues
- 📝 **Better Error Handling** - Enhanced feedback for failed operations
📱 **Android Mobile Client available!**
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-14
View File
@@ -1,14 +0,0 @@
<?xml version = "1.0" encoding = "UTF-8" ?>
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:PS5UploadMobile"
x:Class="PS5UploadMobile.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
-11
View File
@@ -1,11 +0,0 @@
namespace PS5UploadMobile;
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new AppShell();
}
}
-14
View File
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="PS5UploadMobile.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:PS5UploadMobile"
Shell.FlyoutBehavior="Disabled">
<ShellContent
Title="Home"
ContentTemplate="{DataTemplate local:MainPage}"
Route="MainPage" />
</Shell>
-9
View File
@@ -1,9 +0,0 @@
namespace PS5UploadMobile;
public partial class AppShell : Shell
{
public AppShell()
{
InitializeComponent();
}
}
-98
View File
@@ -1,98 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="PS5UploadMobile.MainPage"
Title="PS5 Upload Suite">
<Grid RowDefinitions="Auto,Auto,Auto,*,Auto,Auto">
<!-- Top Bar with Menu -->
<Grid Grid.Row="0" Padding="10" BackgroundColor="#1E1E1E" ColumnDefinitions="Auto,*,Auto">
<Button Grid.Column="0" Text="☰" FontSize="24" BackgroundColor="Transparent"
Clicked="OnMenuClicked" WidthRequest="50"/>
<Label Grid.Column="1" Text="PS5 Upload Suite" FontSize="20" FontAttributes="Bold"
TextColor="White" VerticalOptions="Center" HorizontalOptions="Center"/>
<Button Grid.Column="2" Text="⭐" FontSize="20" BackgroundColor="Transparent"
Clicked="OnAddFavoriteClicked" WidthRequest="50"/>
</Grid>
<!-- Connection Panel -->
<Frame Grid.Row="1" Padding="10" Margin="10,5,10,5" BackgroundColor="#1E1E1E" CornerRadius="8">
<VerticalStackLayout Spacing="10">
<Label Text="PS5 Connection" FontSize="18" FontAttributes="Bold" TextColor="White"/>
<Grid ColumnDefinitions="*,*" ColumnSpacing="10">
<Entry x:Name="IpEntry" Grid.Column="0" Placeholder="PS5 IP (192.168.0.160)"
Text="192.168.0.160" TextColor="White" PlaceholderColor="Gray"/>
<Entry x:Name="PortEntry" Grid.Column="1" Placeholder="Port (9113)"
Text="9113" Keyboard="Numeric" TextColor="White" PlaceholderColor="Gray"/>
</Grid>
<Grid ColumnDefinitions="*,*" ColumnSpacing="10">
<Button x:Name="ConnectBtn" Grid.Column="0" Text="Connect"
Clicked="OnConnectClicked" BackgroundColor="#0078D4"/>
<Button x:Name="DisconnectBtn" Grid.Column="1" Text="Disconnect"
Clicked="OnDisconnectClicked" BackgroundColor="#D13438" IsEnabled="False"/>
</Grid>
<Label x:Name="StatusLabel" Text="Not connected" FontSize="12"
TextColor="Orange" HorizontalOptions="Center"/>
</VerticalStackLayout>
</Frame>
<!-- Path Navigation -->
<Frame Grid.Row="2" Padding="10" Margin="10,0,10,5" BackgroundColor="#2D2D2D" CornerRadius="8">
<Grid ColumnDefinitions="Auto,*,Auto">
<Button Grid.Column="0" Text="⬆️" Clicked="OnUpDirectoryClicked"
WidthRequest="50" BackgroundColor="#3E3E3E"/>
<Entry x:Name="PathEntry" Grid.Column="1" Text="/data/"
TextColor="White" Margin="10,0"/>
<Button Grid.Column="2" Text="🔄" Clicked="OnRefreshClicked"
WidthRequest="50" BackgroundColor="#3E3E3E"/>
</Grid>
</Frame>
<!-- File List -->
<Frame Grid.Row="3" Padding="0" Margin="10,0,10,5" BackgroundColor="#2D2D2D" CornerRadius="8">
<CollectionView x:Name="FileListView" SelectionMode="Single"
SelectionChanged="OnFileSelected">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="15,10" ColumnDefinitions="Auto,*,Auto">
<Label Grid.Column="0" Text="{Binding Icon}" FontSize="20"
VerticalOptions="Center" Margin="0,0,10,0"/>
<VerticalStackLayout Grid.Column="1" VerticalOptions="Center">
<Label Text="{Binding Name}" TextColor="White" FontSize="16"/>
<Label Text="{Binding Size}" TextColor="Gray" FontSize="12"/>
</VerticalStackLayout>
<Label Grid.Column="2" Text="{Binding Type}" TextColor="Gray"
FontSize="12" VerticalOptions="Center"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Frame>
<!-- Progress Bar -->
<Frame Grid.Row="4" Padding="10" Margin="10,0,10,5" BackgroundColor="#2D2D2D"
CornerRadius="8" IsVisible="{Binding IsTransferring}">
<VerticalStackLayout Spacing="5">
<Label x:Name="ProgressLabel" Text="Uploading..." TextColor="White" FontSize="14"/>
<ProgressBar x:Name="ProgressBar" Progress="0" ProgressColor="#0078D4"/>
<Label x:Name="ProgressPercentLabel" Text="0%" TextColor="Gray"
FontSize="12" HorizontalOptions="Center"/>
</VerticalStackLayout>
</Frame>
<!-- Action Buttons -->
<Grid Grid.Row="5" Padding="10" ColumnDefinitions="*,*,*" ColumnSpacing="10">
<Button Grid.Column="0" Text="📤 Upload" Clicked="OnUploadClicked"
BackgroundColor="#107C10"/>
<Button Grid.Column="1" Text="📥 Download" Clicked="OnDownloadClicked"
BackgroundColor="#0078D4"/>
<Button Grid.Column="2" Text="🗑️ Delete" Clicked="OnDeleteClicked"
BackgroundColor="#D13438"/>
</Grid>
</Grid>
</ContentPage>
-571
View File
@@ -1,571 +0,0 @@
#nullable enable
using PS5UploadMobile.Services;
using System.Collections.ObjectModel;
namespace PS5UploadMobile;
public partial class MainPage : ContentPage
{
private PS5UploadService _uploadService;
private ObservableCollection<FileItem> _files;
private string _currentPath = "/data/";
private FileItem? _selectedFile;
// New features
private List<string> _favorites = new List<string>();
private List<string> _debugLog = new List<string>();
private List<string> _transferHistory = new List<string>();
private const string FavoritesKey = "ps5_favorites";
// PS5 Profiles
private Dictionary<string, string> _ps5Profiles = new Dictionary<string, string>(); // name -> ip:port
private const string ProfilesKey = "ps5_profiles";
private string _currentProfileName = "";
public MainPage()
{
InitializeComponent();
_uploadService = new PS5UploadService();
_files = new ObservableCollection<FileItem>();
FileListView.ItemsSource = _files;
_uploadService.LogMessage += OnLogMessage;
_uploadService.ProgressChanged += OnProgressChanged;
LoadFavorites();
LoadProfiles();
}
// Menu button handler
private async void OnMenuClicked(object sender, EventArgs e)
{
string action = await DisplayActionSheet("Menu", "Cancel", null,
"🎮 PS5 Profiles",
"📋 Debug Log",
"📊 Transfer History",
"⭐ Favorites",
"🗑️ Clear Logs");
switch (action)
{
case "🎮 PS5 Profiles":
await ShowProfiles();
break;
case "📋 Debug Log":
await ShowDebugLog();
break;
case "📊 Transfer History":
await ShowTransferHistory();
break;
case "⭐ Favorites":
await ShowFavorites();
break;
case "🗑️ Clear Logs":
_debugLog.Clear();
_transferHistory.Clear();
await DisplayAlert("Cleared", "Logs cleared", "OK");
break;
}
}
private async Task ShowDebugLog()
{
string log = _debugLog.Count > 0
? string.Join("\n", _debugLog.TakeLast(50))
: "No log entries yet";
string action = await DisplayActionSheet("Debug Log", "Close", null, "📋 Copy Log", "👁️ View Log");
if (action == "📋 Copy Log")
{
await Clipboard.SetTextAsync(log);
await DisplayAlert("Copied", "Log copied to clipboard", "OK");
}
else if (action == "👁️ View Log")
{
await DisplayAlert("Debug Log", log, "OK");
}
}
private async Task ShowTransferHistory()
{
string history = _transferHistory.Count > 0
? string.Join("\n", _transferHistory.TakeLast(20))
: "No transfers yet";
await DisplayAlert("Transfer History", history, "OK");
}
private async Task ShowFavorites()
{
if (_favorites.Count == 0)
{
await DisplayAlert("Favorites", "No favorites saved.\nTap ⭐ to add current path.", "OK");
return;
}
// Add options for each favorite plus a delete option
var options = new List<string>();
foreach (var fav in _favorites)
{
options.Add($"📁 {fav}");
}
options.Add("🗑️ Delete a favorite");
string? selected = await DisplayActionSheet("Favorites", "Cancel", null, options.ToArray());
if (selected == null || selected == "Cancel")
return;
if (selected == "🗑️ Delete a favorite")
{
await DeleteFavorite();
}
else if (selected.StartsWith("📁 "))
{
string path = selected.Substring(3);
if (_favorites.Contains(path))
{
_currentPath = path;
PathEntry.Text = _currentPath;
await RefreshFileList();
}
}
}
private async Task DeleteFavorite()
{
if (_favorites.Count == 0) return;
string? toDelete = await DisplayActionSheet("Delete which favorite?", "Cancel", null, _favorites.ToArray());
if (toDelete != null && toDelete != "Cancel" && _favorites.Contains(toDelete))
{
_favorites.Remove(toDelete);
SaveFavorites();
await DisplayAlert("Deleted", $"'{toDelete}' removed from favorites", "OK");
}
}
private async void OnAddFavoriteClicked(object sender, EventArgs e)
{
if (_favorites.Contains(_currentPath))
{
bool remove = await DisplayAlert("Favorite Exists",
$"Remove '{_currentPath}' from favorites?", "Remove", "Cancel");
if (remove)
{
_favorites.Remove(_currentPath);
SaveFavorites();
await DisplayAlert("Removed", "Favorite removed", "OK");
}
}
else
{
_favorites.Add(_currentPath);
SaveFavorites();
await DisplayAlert("Added", $"'{_currentPath}' added to favorites", "OK");
}
}
private void LoadFavorites()
{
string? saved = Preferences.Get(FavoritesKey, "");
if (!string.IsNullOrEmpty(saved))
{
_favorites = saved.Split('|').Where(s => !string.IsNullOrEmpty(s)).ToList();
}
}
private void SaveFavorites()
{
Preferences.Set(FavoritesKey, string.Join("|", _favorites));
}
// PS5 Profile Management
private void LoadProfiles()
{
string? saved = Preferences.Get(ProfilesKey, "");
if (!string.IsNullOrEmpty(saved))
{
_ps5Profiles.Clear();
var entries = saved.Split('|').Where(s => !string.IsNullOrEmpty(s));
foreach (var entry in entries)
{
var parts = entry.Split('=');
if (parts.Length == 2)
{
_ps5Profiles[parts[0]] = parts[1];
}
}
}
}
private void SaveProfiles()
{
var entries = _ps5Profiles.Select(p => $"{p.Key}={p.Value}");
Preferences.Set(ProfilesKey, string.Join("|", entries));
}
private async Task ShowProfiles()
{
var options = new List<string>();
foreach (var profile in _ps5Profiles)
{
string marker = profile.Key == _currentProfileName ? "✓ " : "";
options.Add($"{marker}🎮 {profile.Key} ({profile.Value})");
}
options.Add("➕ Add new profile");
if (_ps5Profiles.Count > 0)
{
options.Add("🗑️ Delete a profile");
}
string? selected = await DisplayActionSheet("PS5 Profiles", "Cancel", null, options.ToArray());
if (selected == null || selected == "Cancel")
return;
if (selected == "➕ Add new profile")
{
await AddNewProfile();
}
else if (selected == "🗑️ Delete a profile")
{
await DeleteProfile();
}
else if (selected.Contains("🎮"))
{
// Extract profile name
int start = selected.IndexOf("🎮 ") + 3;
int end = selected.IndexOf(" (");
if (start > 2 && end > start)
{
string profileName = selected.Substring(start, end - start);
await SelectProfile(profileName);
}
}
}
private async Task AddNewProfile()
{
string? name = await DisplayPromptAsync("New Profile", "Enter profile name:", "Save", "Cancel", "My PS5");
if (string.IsNullOrEmpty(name)) return;
string? ip = await DisplayPromptAsync("PS5 IP", "Enter PS5 IP address:", "Save", "Cancel", "192.168.0.160");
if (string.IsNullOrEmpty(ip)) return;
string? port = await DisplayPromptAsync("Port", "Enter port (default 9113):", "Save", "Cancel", "9113", keyboard: Keyboard.Numeric);
if (string.IsNullOrEmpty(port)) port = "9113";
_ps5Profiles[name] = $"{ip}:{port}";
SaveProfiles();
await DisplayAlert("Saved", $"Profile '{name}' saved", "OK");
await SelectProfile(name);
}
private async Task DeleteProfile()
{
if (_ps5Profiles.Count == 0) return;
string? toDelete = await DisplayActionSheet("Delete which profile?", "Cancel", null, _ps5Profiles.Keys.ToArray());
if (toDelete != null && toDelete != "Cancel" && _ps5Profiles.ContainsKey(toDelete))
{
_ps5Profiles.Remove(toDelete);
SaveProfiles();
if (_currentProfileName == toDelete)
{
_currentProfileName = "";
}
await DisplayAlert("Deleted", $"Profile '{toDelete}' deleted", "OK");
}
}
private async Task SelectProfile(string profileName)
{
if (!_ps5Profiles.ContainsKey(profileName)) return;
string ipPort = _ps5Profiles[profileName];
var parts = ipPort.Split(':');
if (parts.Length == 2)
{
IpEntry.Text = parts[0];
PortEntry.Text = parts[1];
_currentProfileName = profileName;
AddLog($"Selected profile: {profileName} ({ipPort})");
await DisplayAlert("Profile Selected", $"Using '{profileName}'\nIP: {parts[0]}\nPort: {parts[1]}", "OK");
}
}
private async void OnConnectClicked(object sender, EventArgs e)
{
ConnectBtn.IsEnabled = false;
StatusLabel.Text = "Connecting...";
StatusLabel.TextColor = Colors.Yellow;
_uploadService.PS5Ip = IpEntry.Text;
_uploadService.Port = int.Parse(PortEntry.Text);
AddLog($"Connecting to {IpEntry.Text}:{PortEntry.Text}...");
bool connected = await _uploadService.ConnectAsync();
if (connected)
{
StatusLabel.Text = "Connected ✓";
StatusLabel.TextColor = Colors.Green;
ConnectBtn.IsEnabled = false;
DisconnectBtn.IsEnabled = true;
AddLog("Connected successfully");
await RefreshFileList();
}
else
{
StatusLabel.Text = "Connection failed";
StatusLabel.TextColor = Colors.Red;
ConnectBtn.IsEnabled = true;
AddLog("Connection failed");
}
}
private async void OnDisconnectClicked(object sender, EventArgs e)
{
await _uploadService.DisconnectAsync();
StatusLabel.Text = "Disconnected";
StatusLabel.TextColor = Colors.Orange;
ConnectBtn.IsEnabled = true;
DisconnectBtn.IsEnabled = false;
_files.Clear();
AddLog("Disconnected");
}
private async void OnRefreshClicked(object sender, EventArgs e)
{
await RefreshFileList();
}
private async void OnUpDirectoryClicked(object sender, EventArgs e)
{
if (_currentPath != "/")
{
int lastSlash = _currentPath.TrimEnd('/').LastIndexOf('/');
_currentPath = _currentPath.Substring(0, lastSlash + 1);
PathEntry.Text = _currentPath;
await RefreshFileList();
}
}
private async void OnFileSelected(object sender, SelectionChangedEventArgs e)
{
if (e.CurrentSelection.Count > 0)
{
_selectedFile = e.CurrentSelection[0] as FileItem;
if (_selectedFile?.IsDirectory == true)
{
_currentPath = _selectedFile.FullPath;
PathEntry.Text = _currentPath;
await RefreshFileList();
FileListView.SelectedItem = null;
}
}
}
private async void OnUploadClicked(object sender, EventArgs e)
{
try
{
var result = await FilePicker.PickAsync();
if (result != null)
{
ProgressLabel.Text = $"Uploading {result.FileName}...";
ProgressBar.Progress = 0;
ProgressPercentLabel.Text = "0%";
// Copy file to temp location for reliable access on Android
string tempPath = Path.Combine(FileSystem.CacheDirectory, result.FileName);
using (var sourceStream = await result.OpenReadAsync())
using (var destStream = File.Create(tempPath))
{
await sourceStream.CopyToAsync(destStream);
}
string remotePath = _currentPath.TrimEnd('/') + "/" + result.FileName;
AddLog($"Uploading: {result.FileName} -> {remotePath}");
bool success = await _uploadService.UploadFileAsync(tempPath, remotePath);
// Clean up temp file
try { File.Delete(tempPath); } catch { }
if (success)
{
AddTransfer($"⬆️ {result.FileName}");
await DisplayAlert("Success", "File uploaded successfully!", "OK");
await RefreshFileList();
}
else
{
await DisplayAlert("Error", "Upload failed", "OK");
}
}
}
catch (Exception ex)
{
AddLog($"Upload error: {ex.Message}");
await DisplayAlert("Error", $"Upload failed: {ex.Message}", "OK");
}
}
private async void OnDownloadClicked(object sender, EventArgs e)
{
if (_selectedFile == null || _selectedFile.IsDirectory)
{
await DisplayAlert("Error", "Please select a file to download", "OK");
return;
}
try
{
// First download to cache, then let user save via Share
string cachePath = Path.Combine(FileSystem.CacheDirectory, _selectedFile.Name);
ProgressLabel.Text = $"Downloading {_selectedFile.Name}...";
ProgressBar.Progress = 0;
ProgressPercentLabel.Text = "0%";
AddLog($"Downloading: {_selectedFile.FullPath} -> {cachePath}");
bool success = await _uploadService.DownloadFileAsync(_selectedFile.FullPath, cachePath);
if (success)
{
AddTransfer($"⬇️ {_selectedFile.Name}");
// Use Share to let user choose where to save
// This opens the Android share sheet where user can:
// - Save to Files app (choose location)
// - Save to Downloads
// - Send via other apps
string? action = await DisplayActionSheet(
$"'{_selectedFile.Name}' downloaded!",
"Close", null,
"💾 Save to location...",
"📂 Open file");
if (action == "💾 Save to location...")
{
// Share opens Android's save/share dialog where user can choose location
await Share.RequestAsync(new ShareFileRequest
{
Title = $"Save {_selectedFile.Name}",
File = new ShareFile(cachePath)
});
}
else if (action == "📂 Open file")
{
try
{
await Launcher.OpenAsync(new OpenFileRequest
{
File = new ReadOnlyFile(cachePath)
});
}
catch
{
await DisplayAlert("Error", "No app found to open this file type", "OK");
}
}
}
else
{
await DisplayAlert("Error", "Download failed", "OK");
}
}
catch (Exception ex)
{
AddLog($"Download error: {ex.Message}");
await DisplayAlert("Error", $"Download failed: {ex.Message}", "OK");
}
}
private async void OnDeleteClicked(object sender, EventArgs e)
{
if (_selectedFile == null)
{
await DisplayAlert("Error", "Please select a file to delete", "OK");
return;
}
bool confirm = await DisplayAlert("Confirm",
$"Delete {_selectedFile.Name}?", "Yes", "No");
if (confirm)
{
AddLog($"Deleting: {_selectedFile.FullPath}");
bool success = await _uploadService.DeleteFileAsync(_selectedFile.FullPath);
if (success)
{
AddTransfer($"🗑️ {_selectedFile.Name}");
await RefreshFileList();
}
}
}
private async Task RefreshFileList()
{
try
{
_files.Clear();
AddLog($"Listing: {_currentPath}");
var fileItems = await _uploadService.ListDirectoryAsync(_currentPath);
foreach (var fileItem in fileItems)
{
_files.Add(fileItem);
}
AddLog($"Found {fileItems.Count} items");
}
catch (Exception ex)
{
AddLog($"List error: {ex.Message}");
await DisplayAlert("Error", $"Failed to list directory: {ex.Message}", "OK");
}
}
private void AddLog(string message)
{
string timestamp = DateTime.Now.ToString("HH:mm:ss");
_debugLog.Add($"[{timestamp}] {message}");
if (_debugLog.Count > 100) _debugLog.RemoveAt(0);
}
private void AddTransfer(string message)
{
string timestamp = DateTime.Now.ToString("HH:mm:ss");
_transferHistory.Add($"[{timestamp}] {message}");
if (_transferHistory.Count > 50) _transferHistory.RemoveAt(0);
}
private void OnLogMessage(object? sender, string message)
{
MainThread.BeginInvokeOnMainThread(() =>
{
AddLog(message);
});
}
private void OnProgressChanged(object? sender, int progress)
{
MainThread.BeginInvokeOnMainThread(() =>
{
ProgressBar.Progress = progress / 100.0;
ProgressPercentLabel.Text = $"{progress}%";
});
}
}
-18
View File
@@ -1,18 +0,0 @@
namespace PS5UploadMobile;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
});
return builder.Build();
}
}
-47
View File
@@ -1,47 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0-android</TargetFrameworks>
<OutputType>Exe</OutputType>
<RootNamespace>PS5UploadMobile</RootNamespace>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
<!-- Display name -->
<ApplicationTitle>PS5 Upload Suite</ApplicationTitle>
<!-- App Identifier -->
<ApplicationId>com.ps5tools.uploadsuite</ApplicationId>
<ApplicationIdGuid>0cb2ca56-8fa9-400b-8669-c219279a7aad</ApplicationIdGuid>
<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<!-- Android specific -->
<AndroidManifest>Platforms\Android\AndroidManifest.xml</AndroidManifest>
</PropertyGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net6.0-android'))">
<PackageReference Include="System.Net.Sockets" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<!-- App Icon - PS5 Logo from Windows client -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" />
<!-- Images -->
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
<!-- Custom Fonts -->
<MauiFont Include="Resources\Fonts\*" />
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
</Project>
-270
View File
@@ -1,270 +0,0 @@
#nullable enable
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace PS5UploadMobile.Services
{
public class FtpService
{
private string _ps5Ip = "192.168.0.160";
private int _ftpPort = 2121;
private TcpClient? _controlClient;
private NetworkStream? _controlStream;
private StreamReader? _controlReader;
public event EventHandler<string>? LogMessage;
public event EventHandler<int>? ProgressChanged;
public string PS5Ip
{
get => _ps5Ip;
set => _ps5Ip = value;
}
public int FtpPort
{
get => _ftpPort;
set => _ftpPort = value;
}
public async Task<bool> ConnectAsync()
{
try
{
_controlClient = new TcpClient();
await _controlClient.ConnectAsync(_ps5Ip, _ftpPort);
_controlStream = _controlClient.GetStream();
_controlReader = new StreamReader(_controlStream, Encoding.ASCII);
// Read welcome message
string? response = await _controlReader.ReadLineAsync();
LogMessage?.Invoke(this, $"Connected: {response}");
// Login as anonymous
await SendCommandAsync("USER anonymous");
await SendCommandAsync("PASS anonymous");
await SendCommandAsync("TYPE I"); // Binary mode
return true;
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Connection failed: {ex.Message}");
return false;
}
}
public async Task DisconnectAsync()
{
try
{
if (_controlClient?.Connected == true)
{
await SendCommandAsync("QUIT");
}
}
catch { }
finally
{
_controlReader?.Dispose();
_controlStream?.Dispose();
_controlClient?.Dispose();
}
}
public async Task<List<string>> ListDirectoryAsync(string path)
{
var files = new List<string>();
try
{
// Change to directory
await SendCommandAsync($"CWD {path}");
// Enter passive mode
string pasvResponse = await SendCommandAsync("PASV");
var dataEndpoint = ParsePasvResponse(pasvResponse);
// Connect to data channel
using var dataClient = new TcpClient();
await dataClient.ConnectAsync(dataEndpoint.Address, dataEndpoint.Port);
using var dataStream = dataClient.GetStream();
using var dataReader = new StreamReader(dataStream, Encoding.ASCII);
// Send LIST command
await SendCommandAsync("LIST");
// Read directory listing
string? line;
while ((line = await dataReader.ReadLineAsync()) != null)
{
files.Add(line);
}
dataClient.Close();
await ReadResponseAsync(); // Read final response
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"List failed: {ex.Message}");
}
return files;
}
public async Task<bool> UploadFileAsync(string localPath, string remotePath)
{
try
{
var fileInfo = new FileInfo(localPath);
long totalBytes = fileInfo.Length;
long uploadedBytes = 0;
// Enter passive mode
string pasvResponse = await SendCommandAsync("PASV");
var dataEndpoint = ParsePasvResponse(pasvResponse);
// Connect to data channel
using var dataClient = new TcpClient();
await dataClient.ConnectAsync(dataEndpoint.Address, dataEndpoint.Port);
using var dataStream = dataClient.GetStream();
// Send STOR command
await SendCommandAsync($"STOR {remotePath}");
// Upload file
using var fileStream = File.OpenRead(localPath);
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = await fileStream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
await dataStream.WriteAsync(buffer, 0, bytesRead);
uploadedBytes += bytesRead;
int progress = (int)((uploadedBytes * 100) / totalBytes);
ProgressChanged?.Invoke(this, progress);
}
dataClient.Close();
await ReadResponseAsync(); // Read final response
LogMessage?.Invoke(this, $"Upload complete: {Path.GetFileName(localPath)}");
return true;
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Upload failed: {ex.Message}");
return false;
}
}
public async Task<bool> DownloadFileAsync(string remotePath, string localPath)
{
try
{
// Get file size
string sizeResponse = await SendCommandAsync($"SIZE {remotePath}");
long totalBytes = ParseSizeResponse(sizeResponse);
long downloadedBytes = 0;
// Enter passive mode
string pasvResponse = await SendCommandAsync("PASV");
var dataEndpoint = ParsePasvResponse(pasvResponse);
// Connect to data channel
using var dataClient = new TcpClient();
await dataClient.ConnectAsync(dataEndpoint.Address, dataEndpoint.Port);
using var dataStream = dataClient.GetStream();
// Send RETR command
await SendCommandAsync($"RETR {remotePath}");
// Download file
using var fileStream = File.Create(localPath);
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = await dataStream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
await fileStream.WriteAsync(buffer, 0, bytesRead);
downloadedBytes += bytesRead;
if (totalBytes > 0)
{
int progress = (int)((downloadedBytes * 100) / totalBytes);
ProgressChanged?.Invoke(this, progress);
}
}
dataClient.Close();
await ReadResponseAsync(); // Read final response
LogMessage?.Invoke(this, $"Download complete: {Path.GetFileName(remotePath)}");
return true;
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Download failed: {ex.Message}");
return false;
}
}
public async Task<bool> DeleteFileAsync(string remotePath)
{
try
{
await SendCommandAsync($"DELE {remotePath}");
LogMessage?.Invoke(this, $"Deleted: {remotePath}");
return true;
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Delete failed: {ex.Message}");
return false;
}
}
private async Task<string> SendCommandAsync(string command)
{
if (_controlStream == null || _controlReader == null)
throw new InvalidOperationException("Not connected");
byte[] commandBytes = Encoding.ASCII.GetBytes(command + "\r\n");
await _controlStream.WriteAsync(commandBytes, 0, commandBytes.Length);
return await ReadResponseAsync();
}
private async Task<string> ReadResponseAsync()
{
if (_controlReader == null)
throw new InvalidOperationException("Not connected");
string? response = await _controlReader.ReadLineAsync();
LogMessage?.Invoke(this, $"FTP: {response}");
return response ?? "";
}
private IPEndPoint ParsePasvResponse(string response)
{
// Parse PASV response: 227 Entering Passive Mode (192,168,0,160,8,19)
int start = response.IndexOf('(');
int end = response.IndexOf(')');
string[] parts = response.Substring(start + 1, end - start - 1).Split(',');
string ip = $"{parts[0]}.{parts[1]}.{parts[2]}.{parts[3]}";
int port = int.Parse(parts[4]) * 256 + int.Parse(parts[5]);
return new IPEndPoint(IPAddress.Parse(ip), port);
}
private long ParseSizeResponse(string response)
{
// Parse SIZE response: 213 12345
string[] parts = response.Split(' ');
return parts.Length > 1 ? long.Parse(parts[1]) : 0;
}
}
}
-241
View File
@@ -1,241 +0,0 @@
#nullable enable
using PS5Upload;
namespace PS5UploadMobile.Services
{
public class PS5UploadService
{
private string _ps5Ip = "192.168.0.160";
private int _port = 9113;
private PS5Protocol? _protocol;
public event EventHandler<string>? LogMessage;
public event EventHandler<int>? ProgressChanged;
public PS5UploadService()
{
_protocol = new PS5Protocol();
}
public string PS5Ip
{
get => _ps5Ip;
set => _ps5Ip = value;
}
public int Port
{
get => _port;
set => _port = value;
}
public bool IsConnected => _protocol?.IsConnected ?? false;
public async Task<bool> ConnectAsync()
{
try
{
_protocol = new PS5Protocol();
bool connected = await _protocol.ConnectAsync(_ps5Ip, _port);
if (connected)
{
LogMessage?.Invoke(this, $"Connected to PS5 at {_ps5Ip}:{_port}");
return true;
}
else
{
LogMessage?.Invoke(this, "Failed to connect to PS5");
return false;
}
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Connection error: {ex.Message}");
return false;
}
}
public Task DisconnectAsync()
{
if (_protocol != null)
{
_protocol.Disconnect();
LogMessage?.Invoke(this, "Disconnected from PS5");
}
return Task.CompletedTask;
}
public async Task<List<FileItem>> ListDirectoryAsync(string path)
{
var files = new List<FileItem>();
if (_protocol == null || !_protocol.IsConnected)
{
LogMessage?.Invoke(this, "Not connected to PS5");
return files;
}
try
{
var entries = await _protocol.ListDirAsync(path);
foreach (var entry in entries)
{
string fullPath = path.TrimEnd('/') + "/" + entry.Name;
if (entry.IsDirectory) fullPath += "/";
files.Add(new FileItem
{
Name = entry.Name,
Size = entry.IsDirectory ? "" : FormatFileSize(entry.Size),
Type = entry.IsDirectory ? "DIR" : "FILE",
Icon = entry.IsDirectory ? "📁" : "📄",
IsDirectory = entry.IsDirectory,
FullPath = fullPath
});
}
LogMessage?.Invoke(this, $"Listed {files.Count} items in {path}");
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"List error: {ex.Message}");
}
return files;
}
public async Task<bool> UploadFileAsync(string localPath, string remotePath)
{
if (_protocol == null || !_protocol.IsConnected)
{
LogMessage?.Invoke(this, "Not connected to PS5");
return false;
}
try
{
var fileInfo = new FileInfo(localPath);
LogMessage?.Invoke(this, $"Uploading {fileInfo.Name} ({FormatFileSize(fileInfo.Length)})...");
var progress = new Progress<UploadProgress>(p =>
{
int percent = p.TotalBytes > 0 ? (int)((p.BytesSent * 100) / p.TotalBytes) : 0;
ProgressChanged?.Invoke(this, percent);
});
bool success = await _protocol.UploadFileAsync(localPath, remotePath, progress);
if (success)
{
LogMessage?.Invoke(this, $"Upload complete: {fileInfo.Name}");
return true;
}
else
{
LogMessage?.Invoke(this, "Upload failed");
return false;
}
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Upload error: {ex.Message}");
return false;
}
}
public async Task<bool> DownloadFileAsync(string remotePath, string localPath)
{
if (_protocol == null || !_protocol.IsConnected)
{
LogMessage?.Invoke(this, "Not connected to PS5");
return false;
}
try
{
LogMessage?.Invoke(this, $"Downloading {Path.GetFileName(remotePath)}...");
var progress = new Progress<UploadProgress>(p =>
{
int percent = p.TotalBytes > 0 ? (int)((p.BytesSent * 100) / p.TotalBytes) : 0;
ProgressChanged?.Invoke(this, percent);
});
bool success = await _protocol.DownloadFileAsync(remotePath, localPath, progress);
if (success)
{
LogMessage?.Invoke(this, $"Download complete: {Path.GetFileName(remotePath)}");
return true;
}
else
{
LogMessage?.Invoke(this, "Download failed");
return false;
}
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Download error: {ex.Message}");
return false;
}
}
public async Task<bool> DeleteFileAsync(string remotePath)
{
if (_protocol == null || !_protocol.IsConnected)
{
LogMessage?.Invoke(this, "Not connected to PS5");
return false;
}
try
{
bool success = await _protocol.DeleteFileAsync(remotePath);
if (success)
{
LogMessage?.Invoke(this, $"Deleted: {remotePath}");
return true;
}
else
{
LogMessage?.Invoke(this, "Delete failed");
return false;
}
}
catch (Exception ex)
{
LogMessage?.Invoke(this, $"Delete error: {ex.Message}");
return false;
}
}
private string FormatFileSize(long bytes)
{
string[] sizes = { "B", "KB", "MB", "GB" };
double len = bytes;
int order = 0;
while (len >= 1024 && order < sizes.Length - 1)
{
order++;
len /= 1024;
}
return $"{len:0.##} {sizes[order]}";
}
}
public class FileItem
{
public string Name { get; set; } = "";
public string Size { get; set; } = "";
public string Type { get; set; } = "";
public string Icon { get; set; } = "";
public bool IsDirectory { get; set; }
public string FullPath { get; set; } = "";
}
}
File diff suppressed because it is too large. Load diff
Binary file not shown.
-343
View File
@@ -1,343 +0,0 @@
# 🚀 PS5 Upload Suite - High-Speed File Transfer
**By Manos**
**Version 4.1.0 - Memory Optimization & Large File Handling**
Custom high-speed file transfer system for PS5 with etaHEN. Achieves **104+ MB/s** upload speeds for large files using parallel chunked uploads!
⭐ **NEW in v4.1.0:**
- 🧠 **Memory Optimization** - Handles 156K+ files without crashes
- ⚡ **Reduced UI Stuttering** - Batch logging for smoother experience
- 🔧 **Lock-Free Operations** - ConcurrentDictionary for thread-safety
- 🧹 **Auto Memory Cleanup** - Completed files removed from tracking
- � **Incremental Processing** - No massive dictionary allocations
📱 **Android Mobile Client available!**
![Transfer History & Multi-PS5 Support](screenshots/screenshot3.png)
![Mobile App](screenshots/mobile_screenshot.jpg)
---
## 📦 Downloads
Download the latest release from the [Releases](https://github.com/manos555555/PS5-Upload-Suite/releases) page:
### 1. PS5 Server Payload
- **File:** `ps5_upload_server.elf`
- **Port:** 9113
- High-speed custom binary protocol
- 16MB socket buffers for maximum throughput
- Multi-threaded client handling
### 2. Windows GUI Client
- **File:** `PS5Upload.exe`
- Self-contained executable (no .NET installation required)
- Modern dark theme UI
- Drag & drop file/folder upload
- Real-time upload progress with speed tracking
- Transfer History with success/failed tracking
- Privacy-focused (no storage monitoring)
### 3. 📱 Android Mobile Client
- **File:** `PS5UploadMobile.apk`
- Upload/download files from your phone
- Multi-PS5 Profiles support
- Browse PS5 filesystem
- Favorites for quick navigation
---
## 🚀 Quick Start
### Step 1: Load PS5 Payload
1. Download `ps5_upload_server.elf` from the [Releases](https://github.com/manos555555/PS5-Upload-Suite/releases) page
2. Copy it to your PS5: `/data/etaHEN/payloads/ps5_upload_server.elf`
3. Load the payload with elfldr
4. You should see notification: `PS5 Upload Server: 192.168.0.XXX:9113 - By Manos`
### Step 2: Run Windows Client
1. Run `PS5Upload.exe` on your PC
2. Enter your PS5's IP address (e.g., `192.168.0.160`)
3. Click **Connect**
4. Browse files/folders or drag & drop
5. Click **Upload to PS5**
---
## 🎨 Features
### PS5 Server
✅ **High-Speed Protocol** - Custom binary protocol
✅ **4MB Buffers** - Maximum throughput
✅ **Direct Disk I/O** - No temp files
✅ **Multi-threaded** - Handle multiple clients
✅ **Robust Error Handling** - Graceful failures
### Windows Client
✅ **Modern UI** - Dark theme, maximized window for better visibility
✅ **Drag & Drop** - Files and folders
✅ **Browse PS5** - Navigate filesystem
✅ **Real-time Progress** - Speed & percentage tracking
✅ **Optimized Upload** - 8 parallel connections for 88-110 MB/s aggregate speed
✅ **Transfer History** - Track all uploads/downloads with success/failed status
✅ **Auto-Clear History** - Optional auto-clear on startup
✅ **Folder Upload** - Recursive directory upload
✅ **Download Files** - Download from PS5 to PC
✅ **🔍 Smart Search** - Full filesystem indexing with instant search (NEW v3.3)
- Wildcard support: `*.pkg`, `*loader*`, `game*.bin`
- Size filters: `size:>1GB`, `size:<100MB`
- Case-insensitive matching
- Search both filename and full path
- Double-click to navigate to folder
✅ **💻 Shell Terminal** - Execute commands directly on PS5 (NEW v3.3)
- Run system commands remotely
- Real-time output display
- Command history
- Working directory support
✅ **Favorites/Bookmarks** - Quick navigation to saved paths
✅ **Multi-PS5 Support** - Save and switch between multiple PS5 profiles
---
## 📊 Performance
### v3.1.0 Optimized Results:
- ✅ **104+ MB/s** upload speed for large files (parallel chunked uploads)
- ✅ **4 parallel chunk connections** for maximum throughput
- ✅ **500MB chunks** - optimal size for PS5 disk performance
- ✅ **Real-time progress** - Speed/ETA updates during upload
- ✅ **Zero chunk failures** - Fixed race conditions
- ✅ **Fully responsive UI** throughout upload
- ✅ **No memory leaks** - stable operation
### Previous Results (v1.3.0):
- ✅ **42,801 files** uploaded successfully
- ✅ **60-150 MB/s** sustained throughput
| Network | Expected Upload Speed | Expected Download Speed |
|---------|----------------------|------------------------|
| **Gigabit Ethernet** | 88-110 MB/s (aggregate) | 100-120 MB/s |
| **WiFi 6 (5GHz)** | 32-70 MB/s (aggregate) | 60-80 MB/s |
| **WiFi 5 (5GHz)** | 20-50 MB/s (aggregate) | 40-60 MB/s |
**Note:** Upload speeds depend on network quality and PS5 disk write performance. WiFi has ~40-60% overhead compared to Ethernet.
---
## 🛠️ Troubleshooting
### Connection Failed
- Make sure PS5 payload is running
- Check PS5 IP address is correct
- Verify both devices are on same network
- Check firewall settings
### Slow Upload Speed
- Use wired Ethernet connection (not WiFi)
- Close other network applications
- Check PS5 disk health
### Upload Fails
- Check PS5 has enough free space
- Verify destination path exists
- Check file permissions
---
## 🔒 Security Notes
- Server only accepts connections from local network
- No authentication required (local network only)
- SHUTDOWN command only works from localhost
---
## 📝 What's New in v3.2.0
### 🎯 Improvements:
#### 1. 💾 Accurate Storage Display
- **Storage now matches PS5 UI** - Shows ~848 GB instead of raw 872 GB
- **Accounts for reserved space** - Same calculation as PS5 system
#### 2. 📱 Mobile App Improvements
- **Multi-select mode** - Toggle button to select multiple files/folders
- **Folder browser** - Visual folder picker for Copy/Move destinations
- **Sorted file list** - Folders always displayed at top
- **Exit confirmation** - Prompt when pressing back button
- **Delete folders** - Now supports folder deletion (not just files)
- **Batch operations** - Delete/download multiple items at once
#### 3. 🐛 Bug Fixes
- **Fixed empty folder deletion** - No more "Unexpected response" error
- **Fixed Copy/Move crash** - No longer crashes when selecting destination
- **Fixed multi-select count** - Correct item count in delete confirmation
- **Fixed folder navigation** - Can enter folders after actions complete
---
## 📝 What's New in v3.1.0
### 🚀 Performance Improvements:
#### 1. ⚡ Parallel Chunked Uploads (104 MB/s!)
- **Large files (>100MB)** are now split into 500MB chunks
- **4 parallel connections** upload chunks simultaneously
- **Result:** ~104 MB/s upload speed (2x faster than before!)
- **Fixed race condition:** First chunk creates file before others start
- **Fixed closure bug:** Correct offset/size capture for parallel tasks
#### 2. 📊 Real-time Progress Display
- **Speed display** now updates in real-time during chunked uploads
- **ETA display** shows accurate time remaining
- **Progress bar** correctly shows 0-100% for chunked files
- No more speed dropping to 0 during large file uploads
#### 3. 💾 Storage Display Improvements
- **Changed label** to "Data Storage (/data)" for clarity
- **Uses statfs with f_bavail** for more accurate available space
- **Real-time updates** every 5 seconds when connected
---
## 📝 What's New in v3.0.0
### 🐛 Critical Bug Fixes:
#### 1. 🔧 Path Normalization Fix
- **Fixed:** Double-slash paths (`//mnt/ext1/...`) that caused directory creation to fail
- **Affected:** All file operations (upload, download, delete, rename, copy, move)
- **Solution:** Added `NormalizePath()` function in both client and server
- **Result:** 100% reliable directory creation and file uploads
#### 2. 📱 Android Mobile Client
- **NEW:** Full-featured Android app for PS5 file management
- **Multi-PS5 Profiles** - Save and switch between multiple PS5 consoles
- Upload files from phone to PS5
- Download files from PS5 with Share option
- Browse PS5 filesystem
- Favorites for quick navigation
- Debug Log with Copy to clipboard
- Transfer History tracking
#### 3. 🛠️ Server Improvements
- Path normalization in all handler functions
- More robust error handling
- Improved stability for parallel uploads
---
## 📝 What's New in v2.1.0
### 🚀 Performance Optimizations:
#### 1. ⚡ Massive Upload Speed Boost (88-110 MB/s)
- **Server-side:** Replaced `fwrite()` with direct `write()` syscalls
- **Client-side:** 8 parallel large file uploads (optimal for PS5 disk)
- **Result:** 80-110 MB/s aggregate upload speed on Gigabit Ethernet
- **Peak bursts:** Up to 2.05 GB/s when hitting disk cache
- **Per-file:** 11-14 MB/s sustained per connection
#### 2. 📊 Transfer History
- Complete history of all uploads and downloads
- Success/Failed status tracking with error messages
- Speed statistics (average, min, max)
- Export to CSV/JSON for analysis
- Persistent storage across sessions
#### 3. 🔄 Auto-Clear History on Startup
- Optional checkbox to clear history automatically
- Useful for keeping UI clean between sessions
- Setting saved in `ps5_upload_settings.json`
#### 4. 🖥️ Maximized Window UI
- Application opens in full-screen mode by default
- Better visibility for large file transfers
- Can be resized/restored as needed
### Technical Improvements:
- ✅ **16MB socket buffers** (up from 4MB) for maximum throughput
- ✅ **Per-file mutex locking** - Parallel writes without race conditions
- ✅ **File pre-allocation** - Reduces disk fragmentation for large files
- ✅ **Direct syscalls** - Bypasses stdio buffering overhead
---
## 📝 What's New in v2.0.0
### 🎉 4 Major New Features:
#### 1. 📥 Download Files (PS5 → PC)
- Right-click any file → "⬇️ Download to PC"
- Save file dialog for destination selection
- Real-time progress tracking with speed display
- Optimized with sendfile for maximum speed
#### 2. 🔍 File Search
- Search box in PS5 Files panel
- Real-time filtering as you type
- Case-insensitive search
- Quick "Clear" button to reset
#### 3. ⭐ Favorites/Bookmarks
- Save frequently used PS5 paths
- Quick dropdown navigation
- Add/Remove favorite paths
- Persistent storage in JSON
#### 4. 🎮 Multi-PS5 Support
- Save multiple PS5 profiles (IP + name)
- Quick switch between different PS5 consoles
- Dropdown profile selector
- Persistent profile storage
### Previous Stability (v1.3.0):
- ✅ **Zero connection drops** - 5 minute socket timeout + aggressive keepalive
- ✅ **Fully responsive UI** - Async updates + throttled logging
- ✅ **No memory leaks** - Proper resource disposal
- ✅ **Tested:** 42,801 files uploaded with 100% success rate
---
## 📝 License
This software is provided as-is for personal use.
---
## 👤 Author
**Manos**
Created with ❤️ for the PS5 homebrew community
---
## 🙏 Credits
- PS5 SDK
- etaHEN
- Inspired by ps5upload by PhantomPtr
- PS5 homebrew community
---
## 📞 Support
For issues or questions, please open an issue on GitHub.
---
**Enjoy blazing-fast file transfers on your PS5!** 🚀
Binary file not shown.
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"C:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\client\\PS5Upload.csproj": {}
},
"projects": {
"C:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "C:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "C:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,88 @@
{
"format": 1,
"restore": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {}
},
"projects": {
"c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"projectName": "PS5Upload",
"projectPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\PS5Upload.csproj",
"packagesPath": "C:\\Users\\HACKMAN\\.nuget\\packages\\",
"outputPath": "c:\\Users\\HACKMAN\\Desktop\\ps5 test\\my_projects\\ps5_upload_suite\\test\\client\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\HACKMAN\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net6.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0-windows7.0": {
"targetAlias": "net6.0-windows",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Crossgen2.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.NETCore.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
},
{
"name": "Microsoft.WindowsDesktop.App.Runtime.win-x64",
"version": "[6.0.36, 6.0.36]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.428\\RuntimeIdentifierGraph.json"
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\HACKMAN\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.4</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\HACKMAN\.nuget\packages\" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")]
@@ -0,0 +1,70 @@
#pragma checksum "..\..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "CB33FCD6F2FED852F18B020492FB44EEB8795BC8"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms.Integration;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace PS5Upload {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
public void InitializeComponent() {
#line 4 "..\..\..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
public static void Main() {
PS5Upload.App app = new PS5Upload.App();
app.InitializeComponent();
app.Run();
}
}
}
@@ -0,0 +1,154 @@
#pragma checksum "..\..\..\..\DuplicateFileDialog.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "D145AE12375520DEB12FE79F2E403EAFD5425EB8"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms.Integration;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace PS5Upload {
/// <summary>
/// DuplicateFileDialog
/// </summary>
public partial class DuplicateFileDialog : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 40 "..\..\..\..\DuplicateFileDialog.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock MessageTextBlock;
#line default
#line hidden
#line 49 "..\..\..\..\DuplicateFileDialog.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock FileNameTextBlock;
#line default
#line hidden
#line 58 "..\..\..\..\DuplicateFileDialog.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock LocalSizeTextBlock;
#line default
#line hidden
#line 62 "..\..\..\..\DuplicateFileDialog.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock RemoteSizeTextBlock;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/PS5Upload;component/duplicatefiledialog.xaml", System.UriKind.Relative);
#line 1 "..\..\..\..\DuplicateFileDialog.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.MessageTextBlock = ((System.Windows.Controls.TextBlock)(target));
return;
case 2:
this.FileNameTextBlock = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
this.LocalSizeTextBlock = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
this.RemoteSizeTextBlock = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
#line 70 "..\..\..\..\DuplicateFileDialog.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Replace_Click);
#line default
#line hidden
return;
case 6:
#line 71 "..\..\..\..\DuplicateFileDialog.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Skip_Click);
#line default
#line hidden
return;
case 7:
#line 74 "..\..\..\..\DuplicateFileDialog.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ReplaceAll_Click);
#line default
#line hidden
return;
case 8:
#line 75 "..\..\..\..\DuplicateFileDialog.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SkipAll_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}
@@ -0,0 +1,752 @@
#pragma checksum "..\..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "7C721CE99122126DA5F19F2654419A7F727DE54D"
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using PS5Upload;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Controls.Ribbon;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms.Integration;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace PS5Upload {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 118 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox PS5ProfileComboBox;
#line default
#line hidden
#line 219 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox IpAddressTextBox;
#line default
#line hidden
#line 225 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button ConnectButton;
#line default
#line hidden
#line 267 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ListBox LocalFilesListBox;
#line default
#line hidden
#line 339 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox CurrentPathTextBox;
#line default
#line hidden
#line 352 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox FavoritesComboBox;
#line default
#line hidden
#line 442 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox SearchTextBox;
#line default
#line hidden
#line 458 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ListBox PS5FilesListBox;
#line default
#line hidden
#line 546 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox LogTextBox;
#line default
#line hidden
#line 597 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ListBox CompletedTransfersListBox;
#line default
#line hidden
#line 666 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ListBox FailedTransfersListBox;
#line default
#line hidden
#line 759 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.CheckBox AutoClearHistoryCheckBox;
#line default
#line hidden
#line 783 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ItemsControl ShellOutputItems;
#line default
#line hidden
#line 799 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox ShellInputBox;
#line default
#line hidden
#line 848 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock IndexStatusText;
#line default
#line hidden
#line 855 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button StartIndexButton;
#line default
#line hidden
#line 862 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button RefreshStatusButton;
#line default
#line hidden
#line 879 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox SearchQueryBox;
#line default
#line hidden
#line 909 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button ClearSearchResultsButton;
#line default
#line hidden
#line 920 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid SearchResultsGrid;
#line default
#line hidden
#line 993 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Border ProgressPanel;
#line default
#line hidden
#line 1008 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock FilesRemainingText;
#line default
#line hidden
#line 1017 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock TotalProgressText;
#line default
#line hidden
#line 1025 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ProgressBar TotalProgressBar;
#line default
#line hidden
#line 1037 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock UploadFileNameText;
#line default
#line hidden
#line 1043 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ProgressBar UploadProgressBar;
#line default
#line hidden
#line 1060 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock UploadSpeedText;
#line default
#line hidden
#line 1066 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock UploadProgressText;
#line default
#line hidden
#line 1074 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock UploadETAText;
#line default
#line hidden
#line 1091 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button UploadButton;
#line default
#line hidden
#line 1100 "..\..\..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button CancelButton;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/PS5Upload;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "6.0.36.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.PS5ProfileComboBox = ((System.Windows.Controls.ComboBox)(target));
#line 121 "..\..\..\..\MainWindow.xaml"
this.PS5ProfileComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PS5ProfileComboBox_SelectionChanged);
#line default
#line hidden
return;
case 2:
#line 194 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveProfileButton_Click);
#line default
#line hidden
return;
case 3:
#line 199 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteProfileButton_Click);
#line default
#line hidden
return;
case 4:
this.IpAddressTextBox = ((System.Windows.Controls.TextBox)(target));
return;
case 5:
this.ConnectButton = ((System.Windows.Controls.Button)(target));
#line 227 "..\..\..\..\MainWindow.xaml"
this.ConnectButton.Click += new System.Windows.RoutedEventHandler(this.ConnectButton_Click);
#line default
#line hidden
return;
case 6:
this.LocalFilesListBox = ((System.Windows.Controls.ListBox)(target));
#line 270 "..\..\..\..\MainWindow.xaml"
this.LocalFilesListBox.Drop += new System.Windows.DragEventHandler(this.LocalFilesListBox_Drop);
#line default
#line hidden
#line 271 "..\..\..\..\MainWindow.xaml"
this.LocalFilesListBox.DragEnter += new System.Windows.DragEventHandler(this.LocalFilesListBox_DragEnter);
#line default
#line hidden
#line 272 "..\..\..\..\MainWindow.xaml"
this.LocalFilesListBox.MouseRightButtonUp += new System.Windows.Input.MouseButtonEventHandler(this.LocalFilesListBox_RightClick);
#line default
#line hidden
return;
case 7:
#line 286 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.RemoveLocalFile_Click);
#line default
#line hidden
return;
case 8:
#line 296 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BrowseFilesButton_Click);
#line default
#line hidden
return;
case 9:
#line 299 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.BrowseFolderButton_Click);
#line default
#line hidden
return;
case 10:
#line 302 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ClearLocalFiles_Click);
#line default
#line hidden
return;
case 11:
this.CurrentPathTextBox = ((System.Windows.Controls.TextBox)(target));
return;
case 12:
#line 345 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.GoButton_Click);
#line default
#line hidden
return;
case 13:
this.FavoritesComboBox = ((System.Windows.Controls.ComboBox)(target));
#line 355 "..\..\..\..\MainWindow.xaml"
this.FavoritesComboBox.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.FavoritesComboBox_SelectionChanged);
#line default
#line hidden
return;
case 14:
#line 428 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.AddFavoriteButton_Click);
#line default
#line hidden
return;
case 15:
#line 433 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RemoveFavoriteButton_Click);
#line default
#line hidden
return;
case 16:
this.SearchTextBox = ((System.Windows.Controls.TextBox)(target));
#line 445 "..\..\..\..\MainWindow.xaml"
this.SearchTextBox.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.SearchTextBox_TextChanged);
#line default
#line hidden
return;
case 17:
#line 450 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ClearSearchButton_Click);
#line default
#line hidden
return;
case 18:
this.PS5FilesListBox = ((System.Windows.Controls.ListBox)(target));
#line 461 "..\..\..\..\MainWindow.xaml"
this.PS5FilesListBox.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.PS5FilesListBox_MouseDoubleClick);
#line default
#line hidden
return;
case 19:
#line 464 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.NewFolderMenuItem_Click);
#line default
#line hidden
return;
case 20:
#line 466 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.DownloadMenuItem_Click);
#line default
#line hidden
return;
case 21:
#line 468 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.RenameMenuItem_Click);
#line default
#line hidden
return;
case 22:
#line 469 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.CopyMenuItem_Click);
#line default
#line hidden
return;
case 23:
#line 470 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.MoveMenuItem_Click);
#line default
#line hidden
return;
case 24:
#line 472 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteMenuItem_Click);
#line default
#line hidden
return;
case 25:
#line 473 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.DeleteSelectedMenuItem_Click);
#line default
#line hidden
return;
case 26:
this.LogTextBox = ((System.Windows.Controls.TextBox)(target));
return;
case 27:
#line 567 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.CopyLogButton_Click);
#line default
#line hidden
return;
case 28:
#line 571 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ClearLogButton_Click);
#line default
#line hidden
return;
case 29:
this.CompletedTransfersListBox = ((System.Windows.Controls.ListBox)(target));
return;
case 30:
this.FailedTransfersListBox = ((System.Windows.Controls.ListBox)(target));
#line 673 "..\..\..\..\MainWindow.xaml"
this.FailedTransfersListBox.MouseRightButtonUp += new System.Windows.Input.MouseButtonEventHandler(this.FailedTransfersListBox_RightClick);
#line default
#line hidden
return;
case 31:
#line 735 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.RetryFailedTransfers_Click);
#line default
#line hidden
return;
case 32:
#line 736 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.RemoveFailedTransfers_Click);
#line default
#line hidden
return;
case 33:
#line 752 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ExportHistoryButton_Click);
#line default
#line hidden
return;
case 34:
#line 756 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ClearHistoryButton_Click);
#line default
#line hidden
return;
case 35:
this.AutoClearHistoryCheckBox = ((System.Windows.Controls.CheckBox)(target));
#line 763 "..\..\..\..\MainWindow.xaml"
this.AutoClearHistoryCheckBox.Checked += new System.Windows.RoutedEventHandler(this.AutoClearHistoryCheckBox_Changed);
#line default
#line hidden
#line 764 "..\..\..\..\MainWindow.xaml"
this.AutoClearHistoryCheckBox.Unchecked += new System.Windows.RoutedEventHandler(this.AutoClearHistoryCheckBox_Changed);
#line default
#line hidden
return;
case 36:
this.ShellOutputItems = ((System.Windows.Controls.ItemsControl)(target));
return;
case 37:
this.ShellInputBox = ((System.Windows.Controls.TextBox)(target));
#line 807 "..\..\..\..\MainWindow.xaml"
this.ShellInputBox.KeyDown += new System.Windows.Input.KeyEventHandler(this.ShellInputBox_KeyDown);
#line default
#line hidden
return;
case 38:
#line 816 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ShellClearButton_Click);
#line default
#line hidden
return;
case 39:
#line 821 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ShellSaveLogButton_Click);
#line default
#line hidden
return;
case 40:
this.IndexStatusText = ((System.Windows.Controls.TextBlock)(target));
return;
case 41:
this.StartIndexButton = ((System.Windows.Controls.Button)(target));
#line 857 "..\..\..\..\MainWindow.xaml"
this.StartIndexButton.Click += new System.Windows.RoutedEventHandler(this.StartIndexButton_Click);
#line default
#line hidden
return;
case 42:
this.RefreshStatusButton = ((System.Windows.Controls.Button)(target));
#line 864 "..\..\..\..\MainWindow.xaml"
this.RefreshStatusButton.Click += new System.Windows.RoutedEventHandler(this.RefreshStatusButton_Click);
#line default
#line hidden
return;
case 43:
this.SearchQueryBox = ((System.Windows.Controls.TextBox)(target));
return;
case 44:
this.ClearSearchResultsButton = ((System.Windows.Controls.Button)(target));
#line 911 "..\..\..\..\MainWindow.xaml"
this.ClearSearchResultsButton.Click += new System.Windows.RoutedEventHandler(this.ClearSearchResultsButton_Click);
#line default
#line hidden
return;
case 45:
this.SearchResultsGrid = ((System.Windows.Controls.DataGrid)(target));
#line 936 "..\..\..\..\MainWindow.xaml"
this.SearchResultsGrid.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.SearchResultsGrid_MouseDoubleClick);
#line default
#line hidden
return;
case 46:
#line 956 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.SearchDownloadMenuItem_Click);
#line default
#line hidden
return;
case 47:
#line 957 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.SearchCopyPathMenuItem_Click);
#line default
#line hidden
return;
case 48:
#line 958 "..\..\..\..\MainWindow.xaml"
((System.Windows.Controls.MenuItem)(target)).Click += new System.Windows.RoutedEventHandler(this.SearchDeleteMenuItem_Click);
#line default
#line hidden
return;
case 49:
this.ProgressPanel = ((System.Windows.Controls.Border)(target));
return;
case 50:
this.FilesRemainingText = ((System.Windows.Controls.TextBlock)(target));
return;
case 51:
this.TotalProgressText = ((System.Windows.Controls.TextBlock)(target));
return;
case 52:
this.TotalProgressBar = ((System.Windows.Controls.ProgressBar)(target));
return;
case 53:
this.UploadFileNameText = ((System.Windows.Controls.TextBlock)(target));
return;
case 54:
this.UploadProgressBar = ((System.Windows.Controls.ProgressBar)(target));
return;
case 55:
this.UploadSpeedText = ((System.Windows.Controls.TextBlock)(target));
return;
case 56:
this.UploadProgressText = ((System.Windows.Controls.TextBlock)(target));
return;
case 57:
this.UploadETAText = ((System.Windows.Controls.TextBlock)(target));
return;
case 58:
this.UploadButton = ((System.Windows.Controls.Button)(target));
#line 1093 "..\..\..\..\MainWindow.xaml"
this.UploadButton.Click += new System.Windows.RoutedEventHandler(this.UploadButton_Click);
#line default
#line hidden
return;
case 59:
this.CancelButton = ((System.Windows.Controls.Button)(target));
#line 1102 "..\..\..\..\MainWindow.xaml"
this.CancelButton.Click += new System.Windows.RoutedEventHandler(this.CancelButton_Click);
#line default
#line hidden
return;
}
this._contentLoaded = true;
}
}
}
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = C:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\
@@ -0,0 +1 @@
9e15bc3b8f5dec1406ced88d2597b753d2297718
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
b81da7083821062a1db968b689d19a5671f4ec65
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = C:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,20 @@
PS5Upload
winexe
C#
.cs
C:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\obj\Release\net6.0-windows\win-x64\
PS5Upload
none
false
TRACE;RELEASE;NET;NET6_0;NETCOREAPP
C:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\App.xaml
2318866541
9-1063357075
203155564505
DuplicateFileDialog.xaml;MainWindow.xaml;
False
@@ -0,0 +1,4 @@
C:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\obj\Release\net6.0-windows\win-x64\GeneratedInternalTypeHelper.g.cs
FC:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\client\MainWindow.xaml;;
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
6d41212c32fea75f9ea12b2d7d7562562dbca13e
@@ -0,0 +1,19 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net6.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.EnableSingleFileAnalyzer = true
build_property.EnableTrimAnalyzer =
build_property.IncludeAllContentForSelfExtract =
build_property.RootNamespace = PS5Upload
build_property.ProjectDir = c:\Users\HACKMAN\Desktop\ps5 test\my_projects\ps5_upload_suite\test\client\
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Manos")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © 2026 Manos")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("High-Speed File Upload Tool for PS5")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyTitleAttribute("PS5Upload")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Generated by the MSBuild WriteCodeFragment class.
Loaded 100 of 7136 files, more files were not shown because too many files have changed in this diff. Show more