diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9c9fc1e04..aa92cab04 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -42,6 +42,6 @@ Add any other context about the problem here. **Log File (Important)** Share the diagnostic files by: -Open Sucrose settings (Gear icon) top-right -> System -> Log File -> Save +Open Sucrose settings (Gear icon) top-right -> System -> Log Files -> Create or Navigate to the Appdata folder `C:\Users\\AppData\Roaming\Sucrose\Log` \ No newline at end of file diff --git a/src/Portal/Sucrose.Portal/ViewModels/Pages/Setting/SystemSettingViewModel.cs b/src/Portal/Sucrose.Portal/ViewModels/Pages/Setting/SystemSettingViewModel.cs index 0199dccfb..c55bfedb4 100644 --- a/src/Portal/Sucrose.Portal/ViewModels/Pages/Setting/SystemSettingViewModel.cs +++ b/src/Portal/Sucrose.Portal/ViewModels/Pages/Setting/SystemSettingViewModel.cs @@ -9,13 +9,18 @@ using Button = Wpf.Ui.Controls.Button; using DialogResult = System.Windows.Forms.DialogResult; using FolderBrowserDialog = System.Windows.Forms.FolderBrowserDialog; +using SaveFileDialog = Microsoft.Win32.SaveFileDialog; +using SMMI = Sucrose.Manager.Manage.Internal; +using SMMM = Sucrose.Manager.Manage.Manager; using SMR = Sucrose.Memory.Readonly; +using SMV = Sucrose.Memory.Valuable; using SPVCEC = Sucrose.Portal.Views.Controls.ExpanderCard; using SSDECT = Sucrose.Shared.Dependency.Enum.CommandsType; using SSRER = Sucrose.Shared.Resources.Extension.Resources; using SSSHP = Sucrose.Shared.Space.Helper.Processor; using SSSHT = Sucrose.Shared.Space.Helper.Temporary; using SSSMI = Sucrose.Shared.Space.Manage.Internal; +using SSZEZ = Sucrose.Shared.Zip.Extension.Zip; using TextBlock = System.Windows.Controls.TextBlock; namespace Sucrose.Portal.ViewModels.Pages @@ -24,14 +29,22 @@ public partial class SystemSettingViewModel : ObservableObject, INavigationAware { private string StoreTemporaryPath = Path.Combine(SMR.AppDataPath, SMR.AppName, SMR.CacheFolder, SMR.Store); + private string SettingTemporaryPath = Path.Combine(SMR.AppDataPath, SMR.AppName, SMR.SettingFolder); + private string CacheTemporaryPath = Path.Combine(SMR.AppDataPath, SMR.AppName, SMR.CacheFolder); + private string LogTemporaryPath = Path.Combine(SMR.AppDataPath, SMR.AppName, SMR.LogFolder); + private DispatcherTimer InitializeTimer = new(); + private TextBlock LibraryTemporaryHint = new(); + private TextBlock StoreTemporaryHint = new(); private TextBlock CacheTemporaryHint = new(); + private TextBlock LogTemporaryHint = new(); + [ObservableProperty] private List _Contents = new(); @@ -47,11 +60,123 @@ public SystemSettingViewModel() private void InitializeViewModel() { + TextBlock LogArea = new() + { + Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), + Text = SSRER.GetValue("Portal", "Area", "Log"), + Margin = new Thickness(0, 0, 0, 0), + FontWeight = FontWeights.Bold + }; + + Contents.Add(LogArea); + + SPVCEC LogTemporary = new() + { + Margin = new Thickness(0, 10, 0, 0), + Expandable = true + }; + + LogTemporary.Title.Text = "Günlük Dosyaları"; + LogTemporary.LeftIcon.Symbol = SymbolRegular.PersonNote24; + LogTemporary.Description.Text = "Uygulamanın oluşturmuş olduğu tüm günlük dosyalarını yönetme."; + + StackPanel LogTemporaryContent = new() + { + Orientation = Orientation.Horizontal + }; + + Button LogTemporaryCreate = new() + { + Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), + Appearance = ControlAppearance.Secondary, + Margin = new Thickness(0, 0, 0, 0), + Padding = new Thickness(8), + Cursor = Cursors.Hand, + Content = "Oluştur" + }; + + LogTemporaryCreate.Click += (s, e) => LogTemporaryCreateClick(LogTemporaryCreate); + + Button LogTemporaryDelete = new() + { + Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), + Appearance = ControlAppearance.Secondary, + Margin = new Thickness(10, 0, 0, 0), + Padding = new Thickness(8), + Cursor = Cursors.Hand, + Content = "Temizle" + }; + + LogTemporaryDelete.Click += (s, e) => LogTemporaryDeleteClick(LogTemporaryDelete); + + LogTemporaryContent.Children.Add(LogTemporaryCreate); + LogTemporaryContent.Children.Add(LogTemporaryDelete); + + LogTemporary.HeaderFrame = LogTemporaryContent; + + LogTemporaryHint = new() + { + Text = "Not: Günlük dosyalarının kapladığı toplam alan 0 b. Sadece temizliğe başlandığında tüm uygulamalar kapanacaktır.", + Foreground = SSRER.GetResource("TextFillColorSecondaryBrush"), + Margin = new Thickness(0, 0, 0, 0), + FontWeight = FontWeights.SemiBold + }; + + LogTemporary.FooterCard = LogTemporaryHint; + + Contents.Add(LogTemporary); + + TextBlock ResetArea = new() + { + Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), + Text = SSRER.GetValue("Portal", "Area", "Reset"), + Margin = new Thickness(0, 10, 0, 0), + FontWeight = FontWeights.Bold + }; + + Contents.Add(ResetArea); + + SPVCEC SettingReset = new() + { + Margin = new Thickness(0, 10, 0, 0), + Expandable = true + }; + + SettingReset.Title.Text = "Ayar Sıfırlama"; + SettingReset.LeftIcon.Symbol = SymbolRegular.LauncherSettings24; + SettingReset.Description.Text = "Uygulamanın oluşturmuş olduğu tüm ayar dosyalarını sıfırlama."; + + Button SettingResetStart = new() + { + Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), + Appearance = ControlAppearance.Secondary, + Margin = new Thickness(0, 0, 0, 0), + Content = "Sıfırlamaya Başla", + Padding = new Thickness(8), + Cursor = Cursors.Hand, + }; + + SettingResetStart.Click += (s, e) => SettingResetStartClick(SettingResetStart); + + SettingReset.HeaderFrame = SettingResetStart; + + TextBlock SettingResetHint = new() + { + Text = "Not: Sıfırlama işlemi başladığında tüm uygulamalar kapanacaktır.", + Foreground = SSRER.GetResource("TextFillColorSecondaryBrush"), + Margin = new Thickness(0, 0, 0, 0), + FontWeight = FontWeights.SemiBold + }; + + SettingReset.FooterCard = SettingResetHint; + + Contents.Add(SettingReset); + TextBlock CacheArea = new() { Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), Text = SSRER.GetValue("Portal", "Area", "Cache"), - Margin = new Thickness(0, 0, 0, 0), + Margin = new Thickness(0, 10, 0, 0), FontWeight = FontWeights.Bold }; @@ -129,51 +254,51 @@ private void InitializeViewModel() Contents.Add(StoreTemporary); - TextBlock ResetArea = new() + TextBlock LibraryArea = new() { Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), - Text = SSRER.GetValue("Portal", "Area", "Reset"), + Text = SSRER.GetValue("Portal", "Area", "Library"), Margin = new Thickness(0, 10, 0, 0), FontWeight = FontWeights.Bold }; - Contents.Add(ResetArea); + Contents.Add(LibraryArea); - SPVCEC SettingReset = new() + SPVCEC LibraryTemporary = new() { Margin = new Thickness(0, 10, 0, 0), Expandable = true }; - SettingReset.Title.Text = "Ayar Sıfırlama"; - SettingReset.LeftIcon.Symbol = SymbolRegular.LauncherSettings24; - SettingReset.Description.Text = "Uygulamanın oluşturmuş olduğu tüm ayar dosyalarını sıfırlama."; + LibraryTemporary.Title.Text = "Kütüphane Temizleme"; + LibraryTemporary.LeftIcon.Symbol = SymbolRegular.FolderLink24; + LibraryTemporary.Description.Text = "Kütüphanenizde bulunan veya oluşturmuş olduğunuz tüm tema dosyalarını temizleme."; - Button SettingResetStart = new() + Button LibraryTemporaryStart = new() { Foreground = SSRER.GetResource("TextFillColorPrimaryBrush"), Appearance = ControlAppearance.Secondary, Margin = new Thickness(0, 0, 0, 0), - Content = "Sıfırlamaya Başla", + Content = "Temizliğe Başla", Padding = new Thickness(8), Cursor = Cursors.Hand, }; - SettingResetStart.Click += (s, e) => SettingResetStartClick(SettingResetStart); + LibraryTemporaryStart.Click += (s, e) => LibraryTemporaryStartClick(LibraryTemporaryStart); - SettingReset.HeaderFrame = SettingResetStart; + LibraryTemporary.HeaderFrame = LibraryTemporaryStart; - TextBlock SettingResetHint = new() + LibraryTemporaryHint = new() { - Text = "Not: Sıfırlama işlemi başladığında tüm uygulamalar kapanacaktır.", + Text = "Not: Kütüphanenizdeki temaların kapladığı toplam alan 0 b. Temizliğe başlandığında tüm uygulamalar kapanacaktır.", Foreground = SSRER.GetResource("TextFillColorSecondaryBrush"), Margin = new Thickness(0, 0, 0, 0), FontWeight = FontWeights.SemiBold }; - SettingReset.FooterCard = SettingResetHint; + LibraryTemporary.FooterCard = LibraryTemporaryHint; - Contents.Add(SettingReset); + Contents.Add(LibraryTemporary); TextBlock BackupArea = new() { @@ -259,6 +384,41 @@ public void OnNavigatedFrom() InitializeTimer.Stop(); } + private async Task CreateLog() + { + SaveFileDialog SaveDialog = new() + { + FileName = SMV.LogCompress, + + Filter = SSRER.GetValue("Portal", "SystemSettingPage", "LogSaveDialogFilter"), + FilterIndex = 1, + + Title = SSRER.GetValue("Portal", "SystemSettingPage", "LogSaveDialogTitle"), + + InitialDirectory = SMR.DesktopPath + }; + + if (SaveDialog.ShowDialog() == true) + { + string Destination = SaveDialog.FileName; + + string[] Sources = new[] + { + LogTemporaryPath, + SettingTemporaryPath, + }; + + string[] Excludes = new[] + { + SMMI.PrivateSettingManager.SettingFile() + }; + + SSZEZ.Compress(Sources, Excludes, Destination); + } + + await Task.CompletedTask; + } + private void SettingResetStartClick(Button SettingResetStart) { SettingResetStart.IsEnabled = false; @@ -266,6 +426,13 @@ private void SettingResetStartClick(Button SettingResetStart) SSSHP.Run(SSSMI.Commandog, $"{SMR.StartCommand}{SSDECT.Reset}{SMR.ValueSeparator}{SSSMI.Launcher}"); } + private void LogTemporaryDeleteClick(Button LogTemporaryDelete) + { + LogTemporaryDelete.IsEnabled = false; + + SSSHP.Run(SSSMI.Commandog, $"{SMR.StartCommand}{SSDECT.Temp}{SMR.ValueSeparator}{LogTemporaryPath}{SMR.ValueSeparator}{SSSMI.Launcher}"); + } + private void CacheTemporaryStartClick(Button CacheTemporaryStart) { CacheTemporaryStart.IsEnabled = false; @@ -322,10 +489,30 @@ private void SettingBackupImportClick(Button SettingBackupImport) } } + private void LibraryTemporaryStartClick(Button LibraryTemporaryStart) + { + LibraryTemporaryStart.IsEnabled = false; + + SSSHP.Run(SSSMI.Commandog, $"{SMR.StartCommand}{SSDECT.Temp}{SMR.ValueSeparator}{SMMM.LibraryLocation}{SMR.ValueSeparator}{SSSMI.Launcher}"); + } + + private async void LogTemporaryCreateClick(Button LogTemporaryCreate) + { + LogTemporaryCreate.IsEnabled = false; + + await Task.Run(CreateLog); + + LogTemporaryCreate.IsEnabled = true; + } + private async void InitializeTimer_Tick(object sender, EventArgs e) { try { + string LogTemporarySize = await SSSHT.Size(LogTemporaryPath); + + LogTemporaryHint.Text = $"Not: Günlük dosyalarının kapladığı toplam alan {LogTemporarySize}. Sadece temizliğe başlandığında tüm uygulamalar kapanacaktır."; + string CacheTemporarySize = await SSSHT.Size(CacheTemporaryPath); CacheTemporaryHint.Text = $"Not: Önbellek dosyalarının kapladığı toplam alan {CacheTemporarySize}. Temizliğe başlandığında tüm uygulamalar kapanacaktır."; @@ -333,6 +520,10 @@ private async void InitializeTimer_Tick(object sender, EventArgs e) string StoreTemporarySize = await SSSHT.Size(StoreTemporaryPath); StoreTemporaryHint.Text = $"Not: Mağaza dosyalarının kapladığı toplam alan {StoreTemporarySize}. Temizliğe başlandığında tüm uygulamalar kapanacaktır."; + + string LibraryTemporarySize = await SSSHT.Size(SMMM.LibraryLocation); + + LibraryTemporaryHint.Text = $"Not: Kütüphanenizdeki temaların kapladığı toplam alan {LibraryTemporarySize}. Temizliğe başlandığında tüm uygulamalar kapanacaktır."; } catch { } } diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Launcher/Launcher.PL.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Launcher/Launcher.PL.xaml index 9319d2cc2..3c421cd47 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Launcher/Launcher.PL.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Launcher/Launcher.PL.xaml @@ -10,7 +10,7 @@ Otwórz Sucrose Zgłoś Błąd Diagnostyka Sucrose - Pliki ZIP (*.zip)|*.zip|Wszystkie pliki (*.*)|*.* + Pliki ZIP (*.zip)|*.zip|Wszystkie Pliki (*.*)|*.* Zapisz Plik Dziennika Ustawienia Sucrose Wallpaper Engine diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.DE.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.DE.xaml index b0ae9d19e..9f263098c 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.DE.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.DE.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Ton + Protokoll Haken Geschäft Spende diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.EN.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.EN.xaml index 39dc36966..49bf4bdcf 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.EN.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.EN.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Sound + Log Hook Store Donate diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.ES.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.ES.xaml index 100d2b703..6ec020085 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.ES.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.ES.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Sonido + Registro Gancho Tienda Donar diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.FR.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.FR.xaml index 196c66934..41a24d559 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.FR.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.FR.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Son + Journal Crochet Magasin Don diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.PL.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.PL.xaml index 40f16de03..0f206f6c2 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.PL.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.PL.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Dźwięk + Dziennik Hak Sklep Donacja diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.TR.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.TR.xaml index 15c18676c..652c4e33b 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.TR.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/Area/Portal.Area.TR.xaml @@ -4,6 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > Ses + Günlük Kanca Mağaza Bağış diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.DE.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.DE.xaml index f7bc7c109..638775db0 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.DE.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.DE.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Protokolldatei Speichern + ZIP-Dateien (*.zip)|*.zip|Alle Dateien (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.EN.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.EN.xaml index f7bc7c109..e7dbd0e88 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.EN.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.EN.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Save Log File + ZIP Files (*.zip)|*.zip|All Files (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.ES.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.ES.xaml index f7bc7c109..ad3941ec3 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.ES.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.ES.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Guardar Archivo de Registro + Archivos ZIP (*.zip)|*.zip|Todos los Archivos (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.FR.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.FR.xaml index f7bc7c109..bd2662eb8 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.FR.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.FR.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Enregistrer le Fichier Journal + Fichiers ZIP (*.zip)|*.zip|Tous les Fichiers (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.PL.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.PL.xaml index f7bc7c109..4a8e99c34 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.PL.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.PL.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Zapisz Plik Dziennika + Pliki ZIP (*.zip)|*.zip|Wszystkie Pliki (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.TR.xaml b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.TR.xaml index f7bc7c109..a10f9e839 100644 --- a/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.TR.xaml +++ b/src/Shared/Sucrose.Shared.Resources/Locales/Portal/SettingPage/SystemSettingPage/Portal.SystemSettingPage.TR.xaml @@ -4,4 +4,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > SystemSettingPage + + Günlük Dosyasını Kaydet + ZIP Dosyaları (*.zip)|*.zip|Tüm Dosyalar (*.*)|*.* \ No newline at end of file diff --git a/src/Shared/Sucrose.Shared.Zip/Extension/Zip.cs b/src/Shared/Sucrose.Shared.Zip/Extension/Zip.cs index 3507325fc..c91916ad5 100644 --- a/src/Shared/Sucrose.Shared.Zip/Extension/Zip.cs +++ b/src/Shared/Sucrose.Shared.Zip/Extension/Zip.cs @@ -93,6 +93,11 @@ public static SSDECT Compress(string[] Sources, string[] Excludes, string Destin foreach (string Source in Sources) { + if (!Directory.Exists(Source)) + { + Directory.CreateDirectory(Source); + } + string[] Files = Directory.GetFiles(Source, "*", SearchOption.TopDirectoryOnly); foreach (string Record in Files)