如果你只是打開它來讀取它,那麼你可以做以下(假設你已經設置的文件資源的生成操作):
System.IO.Stream myFileStream = Application.GetResourceStream(new Uri(@"/YOURASSEMBLY;component/xmlfiles/mensen.xml",UriKind.Relative)).Stream;
如果你試圖讀/寫這個文件,然後您需要將其複製到獨立存儲。 (一定要添加using System.IO.IsolatedStorage
)
您可以使用這些方法來做到這一點:
private void CopyFromContentToStorage(String fileName)
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
System.IO.Stream src = Application.GetResourceStream(new Uri(@"/YOURASSEMBLY;component/" + fileName,UriKind.Relative)).Stream;
IsolatedStorageFileStream dest = new IsolatedStorageFileStream(fileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write, store);
src.Position = 0;
CopyStream(src, dest);
dest.Flush();
dest.Close();
src.Close();
dest.Dispose();
}
private static void CopyStream(System.IO.Stream input, IsolatedStorageFileStream output)
{
byte[] buffer = new byte[32768];
long TempPos = input.Position;
int readCount;
do
{
readCount = input.Read(buffer, 0, buffer.Length);
if (readCount > 0) { output.Write(buffer, 0, readCount); }
} while (readCount > 0);
input.Position = TempPos;
}
在這兩種情況下,要確保該文件設置爲資源,你的名字取代YOURASSEMBLY屬於你部件。
使用上述方法,來訪問您的文件只是這樣做:
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
if (!store.FileExists(fileName))
{
CopyFromContentToStorage(fileName);
}
store.OpenFile(fileName, System.IO.FileMode.Append);
嗨theXs,如果你的目的是要能修改此文件,然後將其複製到每ChrisKent的建議獨立存儲還是不錯的。如果您只想讀取文件,則不會像Ctacke和Matt所建議的那樣,從xap文件中讀取它作爲內容或資源(取決於您是否想要分別導致負載慣性 - 延遲負載和啓動)。 – 2010-11-24 22:37:27