2011-06-30 10 views
2

私のアプリケーションがWindows Phoneで初めて起動したとき、プロジェクトフォルダからいくつかのファイル(xml/images)を取得し、それらを独立したストレージに書きたいと思っています。プロジェクトフォルダからファイルを読み込むには?

アプリが初めて実行されていることを検出するにはどうすればよいですか?

プロジェクトフォルダ内のファイルにアクセスするにはどうすればよいですか?

答えて

1

ビジュアルスタジオプロジェクトのフォルダのようにプロジェクトフォルダを意味する場合は、通常はファイルを右クリックし、ビルドアクションを「組み込みリソース」に設定します。実行時に、あなたはそうのような埋め込みリソースからデータを読み取ることができます:読み取りする別の方法がある。ここ

public static byte[] ReadAllBytes(Stream input) 
    { 
     byte[] buffer = new byte[32 * 1024]; 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      int read; 

      while ((read = input.Read(buffer, 0, buffer.Length)) > 0) 
      { 
       ms.Write(buffer, 0, read); 
      } 

      return ms.ToArray(); 
     } 
    } 
+0

ありがとうございましたAlex、とても素敵な説明、 – Ishti

+0

は、プロジェクトフォルダにファイルを更新/削除/追加することは可能ですか? – Ishti

+0

@Ishti no、XAPで配布されているかアセンブリ内に埋め込まれているファイル(この場合)を追加、編集、削除することはできません。これらの操作は、IsolatedStorageのファイルでも実行できます。 (http://msdn.microsoft.com/en-us/library/ff402541(v=vs.92).aspxを参照してください)非常に良い理由がない限り、「リソース」を使うのではなく、 'エンベディッド・リソース'と呼ばれている。 –

9

// The resource name will correspond to the namespace and path in the file system. 
// Have a look at the resources collection in the debugger to figure out the name. 
string resourcePath = "assembly namespace" + "path inside project"; 
Assembly assembly = Assembly.GetExecutingAssembly(); 
string[] resources = assembly .GetManifestResourceNames(); 
List<string> files = new List<string>(); 

if (resource.StartsWith(resourcePath)) 
{ 
    StreamReader reader = new StreamReader(assembly.GetManifestResourceStream(resource), Encoding.Default); 
    files.Add(reader.ReadToEnd()); 
} 

あなたはストリームを読み取るために、このようなものが必要になり、画像を読み込むにはあなたのビジュアルスタジオプロジェクトからのファイル。以下は、txtファイルを読む方法を示していますが、他のファイルにも使用できます。ここでファイルは.xaml.csファイルと同じディレクトリにあります。

var res = App.GetResourceStream(new Uri("test.txt", UriKind.Relative)); 
var txt = new StreamReader(res.Stream).ReadToEnd(); 

ファイルがコンテンツとしてマークされていることを確認してください。

関連する問題