Hallo Leute,
ich bin bastel mir gerade ein "kleines" Projekt um den Zwischenspeicher zu verwalten.
Das Tool soll mir alle Clipboards abspeichern sodass ich später wieder darauf zugreifen kann.
Auch falls diese Dateien gelöscht wurden. Ich speicher also die Bytes ab, die in der Zwischenablage waren.
Das war aber extrem nervig, da sich in wenigen MInuten/Stunden viel Daten angesammelt hatten.
Jetzt speicher ich die Dateien nur noch ab, falls diese gelöscht wurden.
Daraufhin hatte ich noch ein Problem, zwecks der Speicherverwaltung.
Erste hatte ich eine Klasse mit Clipboards die in einer Liste gespeichert wurden...
Zurzeit arbeite ich pro Clipboard mit Serialisierung und speicher es direkt als Datei ab.
Funktioniert schon deutlich besser.
Jedoch wenn ich mal über 2-3GB kopiere, krieg ich eine Fehlermeldung "OutOfMemory".
Überlegt habe ich mir pro Clipboard eine Datei zu erstellen die serialisiert wurde.
Jedoch bringt mir das nicht viel wenn im Zwischenspeicher 30 x 100MB Files sind.
Wie regelt man so große Zwischenspeichermengen?!
Komm ich da überhaupt drum rum pro Datei eine extra Datei zu erstellen?
Das wäre noch die sinnvollste Idee, die ich hätte.
Vllt. hat ja hier einer noch ne weitere Idee, wie man das am besten anstellen kann.
Edit:
hier mal noch die 2 Klassen die ich abspeichere
Clipboard
Spoiler anzeigen
Filedrop
Spoiler anzeigen
Vielen dank im Voraus.
ich bin bastel mir gerade ein "kleines" Projekt um den Zwischenspeicher zu verwalten.
Das Tool soll mir alle Clipboards abspeichern sodass ich später wieder darauf zugreifen kann.
Auch falls diese Dateien gelöscht wurden. Ich speicher also die Bytes ab, die in der Zwischenablage waren.
Das war aber extrem nervig, da sich in wenigen MInuten/Stunden viel Daten angesammelt hatten.
Jetzt speicher ich die Dateien nur noch ab, falls diese gelöscht wurden.
Daraufhin hatte ich noch ein Problem, zwecks der Speicherverwaltung.
Erste hatte ich eine Klasse mit Clipboards die in einer Liste gespeichert wurden...
Zurzeit arbeite ich pro Clipboard mit Serialisierung und speicher es direkt als Datei ab.
Funktioniert schon deutlich besser.
Jedoch wenn ich mal über 2-3GB kopiere, krieg ich eine Fehlermeldung "OutOfMemory".
Überlegt habe ich mir pro Clipboard eine Datei zu erstellen die serialisiert wurde.
Jedoch bringt mir das nicht viel wenn im Zwischenspeicher 30 x 100MB Files sind.
Wie regelt man so große Zwischenspeichermengen?!
Komm ich da überhaupt drum rum pro Datei eine extra Datei zu erstellen?
Das wäre noch die sinnvollste Idee, die ich hätte.
Vllt. hat ja hier einer noch ne weitere Idee, wie man das am besten anstellen kann.
Edit:
hier mal noch die 2 Klassen die ich abspeichere
Clipboard
C#-Quellcode
- namespace ClipBoardManager.Core
- {
- [Serializable]
- public class ClipboardObj
- {
- public ClipboardObj()
- {
- }
- [Serializable]
- public enum ClipboardType
- {
- Text,
- Bitmap,
- Filedrop,
- Audio
- }
- public string Time { set; get; }
- public ClipboardType Type { set; get; }
- public object Value { set; get; }
- public static ClipboardObj GetClipboardObjectFromList(string Time)
- {
- ClipboardObj clip = null;
- foreach (var c in AppData.ClipboardObjectList)
- {
- if (c.Time == Time)
- {
- clip = c;
- break;
- }
- }
- return clip;
- }
- }
- }
Filedrop
C#-Quellcode
-
- namespace ClipBoardManager.Core
- {
- [Serializable]
- public class Filedrops
- {
- public Filedrops(ClipboardObj Clipboard)
- {
- _clipboard = Clipboard;
- }
- private ClipboardObj _clipboard;
- public ClipboardObj Clipboard { set { _clipboard = value; } get { return _clipboard; } }
- public Dictionary<string, byte[]> FileValues { set; get; } = new Dictionary<string, byte[]>();
- public static Filedrops GetFiledropFromList(ClipboardObj Clipboard)
- {
- Filedrops filed = null;
- foreach (var file in AppData.FiledropList)
- {
- if (file.Clipboard == Clipboard)
- {
- filed = file;
- break;
- }
- }
- return filed;
- }
- }
- }
Vielen dank im Voraus.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „n1nja“ ()