2017-08-16 1 views
0

Ich war für Block suchen auf diese Weise, die die MP4-Dateien will kopieren Und ich die Art und Weise zu finden bin, dass ich mp4-Datei geändert Auf diese Weise zur Ressourcen:C# mp4-Ressource-Datei hohe Speicher

private void Form1_Load(object sender, EventArgs e) 
    { 
    String openVideo = @"c:\temp\video.mp4"; 
    System.IO.File.WriteAllBytes(openVideo, global::ProjectName.Properties.Resources.mymp4name);    
    System.Diagnostics.Process.Start(openVideo); 
    } 

Es klappt! Aber nach dem Debuggen einer Software Alle der Speicherung der in der EXE-Datei gespeichert und das ist so schwer für eine Datei, und gibt es eine Möglichkeit, diese Resoure-Datei zu speichern Separate und EXE-Datei nur die Software?

Antwort

0

Wenn Sie Speicherdateien wollen, können Sie unabhängig vom Typ "FileStream" verwenden.

private void SaveFile(string _pathToGet, string _pathToSave) 
{ 
    FileStream fs = new FileStream(); 
    byte[] = GetFile(_pathToGet); 
    fs.Write(data, 0, data.Length); 
} 

private byte[] GetFile(_path) 
{ 
    FileStream fs = null; 
    fs = File.Open(_path, FileMode.Open, FileAccess.Read); 
    byte[] data = new byte[fs.Length]; 
    fs.Read(data, 0, (int)fs.Length); 
    fs.Close(); 
    return data; 
} 

Das kann helfen.

+0

danke ich benutze deinen Weg, aber ich habe viele Fehler wie _Pfad existiert nicht Daten existiert nicht und .. können Sie mir klarer durch eine vollständige Quelle helfen? meine exe Dateigröße ist 800 mb wegen der mp4-Ressource und ich möchte diese auf andere pats und Format wie .dat oder .resource trennen –

+0

Können Sie mir sagen, wenn dieser Fehler auftaucht? Um den Code zu verwenden, müssen Sie im Pfad auch den Namen der Datei angeben. Etwas wie: 'C: \\ MyFolder \\ MyVideos \\ File.mp4' und der Pfad zum Speichern müssen auch den Namen der Datei und die Erweiterung, wie:' C: \\ temp \ video.mp4'. Übrigens, ich empfehle nicht, Dateien auf den "Ressourcen" zu speichern, hoffe, dass hilft. –