Autor |
Beitrag |
Necaremus
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Di 23.11.10 15:23
tag,
ich würd gern wissen, wie ich dateien, die ich meinem c# project hinzugefügt habe, (z.b. eine benötigte .exe oder eine config.xml, etc^^)
an einen bestimmten ort auf die Festplatte schreiben kann? (z.b. %current_user%/AppData/stuff)
"Infos Fehlen"
also, alle infos, die ich denke, die benötigt werden:
ich habe ein bestimmte datei, als beispiel mal eine config.xml, die ich direkt in meinem project habe und auch bearbeiten kann.
nun möchte ich zb in meiner Config.cs die funktion einbauen "SaveToXml()".
In dieser Option möchte ich dann meine Datei, sollte sie noch nicht vorhanden sein, an einen bestimmten ort schreiben(Current_User/AppData/...).
ich schaff alles vieles, bis auf das bekommen und schreiben der datei... wie komm ich an meine config.xml ran, sodass ich sie wegschreiben kann?
/edit: anders formuliert, da es vlt missverständnisse geben könnte
don't think to complex: hab noch nie mit externen dateien gearbeitet, daher hab ich kA wie das damit funktioniert^^
die config.xml ist vlt als beispiel doof gewählt... als beispiel würd mir vlt auch nen .jpeg-file reichen oder ähnliches, hauptsache ich weiß, wie ich an dateien komme, die (als resourcen?) in meinem projekt vorhanden sind...
_________________ [Master of dangerous sciolism]. "Never assume malice when stupidity will suffice." Hanlon's Razor
-= Some people see the glass half full. Others see it half empty. I see a glass that's twice as big as it needs to be. =-
Zuletzt bearbeitet von Necaremus am Di 23.11.10 17:09, insgesamt 2-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19326
Erhaltene Danke: 1749
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 23.11.10 16:35
Necaremus hat folgendes geschrieben : | ich habe ein bestimmte datei, als beispiel mal eine config.xml, die ich direkt in meinem project habe und auch bearbeiten kann. |
Ich frage mich eben was du für spezielle Daten hast (also in welchem Format (z.B. String, Stream, ...) die vorliegen), die mit den vielen Lösungen, die du z.B. bei Google unter dem Stichwort C# DATEI SPEICHERN findest, nicht klappen.
|
|
Necaremus 
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Di 23.11.10 16:41
genau da ist ja mein prob: garnicht, sie sind bisher nur dem projekt hinzugefügt.
mein problem ist eigentlich nur das rankommen an die datei.
sobald ich sie hab, hätte ich keine probs mehr, ob nun filestream, fileinfo, bytearray, whatever... das speichern selbst ist ja kein prob. hauptsache ich hab die datei^^
will also sowas wie ProjectFiles.Get(MyFile) :/
_________________ [Master of dangerous sciolism]. "Never assume malice when stupidity will suffice." Hanlon's Razor
-= Some people see the glass half full. Others see it half empty. I see a glass that's twice as big as it needs to be. =-
|
|
Necaremus 
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Di 23.11.10 16:53
also eine lösung die mir selber einfällt, ich persöhnlich aber sehr doof finde:
bei der datei einstellen "immer kopieren" und dann bei jedem programmstart checken, ob die datei im ausgabeverzeichnis ist
- falls ja verschieben
- falls nein alles super, sofern sie nun an dem ort ist, wo i sie haben will, ist sie es nicht: arschkarte, programm muss neu installiert werden.
aber ich muss doch irgendwie an die dateien kommen, die ich in meinem projekt habe? zb, wenn ich nen bild habe, dass ich es in einer form einbauen kann(oder halt speichern^^), ohne es zuvor ins ausgabeverzeichnis kopieren zu müssen... O_o
das kann doch kein schweres problem sein >_>
_________________ [Master of dangerous sciolism]. "Never assume malice when stupidity will suffice." Hanlon's Razor
-= Some people see the glass half full. Others see it half empty. I see a glass that's twice as big as it needs to be. =-
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Di 23.11.10 20:23
Necaremus hat folgendes geschrieben : | (als resourcen?) |
Genau das ist der Punkt: Nur weil die Dateien ins Projekt eingefügt werden, sind sie noch lange nicht Teil der Exe (oder sind darin etwa auch deine .cs-Dateien als Text enthalten  ?). VS bietet Ressourcen direkt typisiert an, suche einfach mal in dieser Sparte nach "Res(s)ourcen".
_________________ >λ=
|
|
Necaremus 
      
Beiträge: 203
Erhaltene Danke: 18
Win > XP, Vista, 7; Android 2.1
C# > VS '08,'10; Delphi7
|
Verfasst: Mi 24.11.10 11:23
here we go:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Assembly assembly = Assembly.GetExecutingAssembly(); Stream str = assembly.GetManifestResourceStream("MyProject.MyNeededFiles.MyTool.exe"); byte[] buffer = new byte[str.Length]; str.Read(buffer, 0, buffer.Length); using (FileStream fStream = new FileStream(@"MyPath\MyTool.exe", FileMode.Create, FileAccess.Write)) { fStream.Write(buffer, 0, buffer.Length); } |
/Edith says: wirklich schwer ist's ja net, nur erstmal herausfinden, wie man an den doofen stream kommt x_X
_________________ [Master of dangerous sciolism]. "Never assume malice when stupidity will suffice." Hanlon's Razor
-= Some people see the glass half full. Others see it half empty. I see a glass that's twice as big as it needs to be. =-
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Do 25.11.10 00:08
|
|
|