天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

關于Windows Phone數據庫和Silverlight本地文件操作

  Isolated Storage是針對各個獨立用戶分配的單獨的虛擬存儲空間,在Windows會存儲在/%AppData%/LocalLow/Microsoft/Silverlight/is, 而在Mac OS X會存儲在 /Users/<user>/Library/Application Support/Microsoft/Silverlight/is。

  Isolated Storage有點像cookies,每個用戶獨立存儲,Isolated Storage的容量是有配額的,但是可以通過調用System.IO.IsolatedStorage.IsolatedStorageFile.IncreaseQuotaTo()來增加容量。

下圖為Isolated Storage的地址。

image

  無論瀏覽器版本的Silverlight還是Out Of Browser都可以自由使用Isolated Storage

IsolatedStorageFile theStore = IsolatedStorageFile.GetUserStoreForApplication();
FileStream fs = new System.IO.IsolatedStorage.IsolatedStorageFileStream(@"wp.db", File
Mode
.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, theStore);

可以在Isolated Storage里面自由的增加,修改刪除文件和目錄。

theStore.CreateDirectory("db");

  但是不能把Isolated Storage外面的文件拷貝到Isolated Storage里面。這個為開發帶來很多困難,例如我想把sqlite的數據庫文件存放到XAP里面一同發布,然后把這個數據文件存放到到Isolated Storage里面,以后可以對這數據庫繼續修改,數據還是保存在Isolated Storage里面。可是不能把XAP里面的文件拷貝到Isolated Storage里面,沒辦法使用預先定義的數據。

image

從我的文檔拷貝數據到Isolated Storage的時候出錯。

在Out of Browser中使用我的文檔

如果使用了Out of Browser,程序可以中使用我的文檔(My Documents)的文件。

image

  在項目屬性中選擇 "Enable running application out of browser",然后點擊 "Out-of-Browser Settings",然后選擇"Required elevated trust when running outside the browser"

image

if (App.Current.HasElevatedPermissions)
{
FileStream stream = new FileStream(Environment.GetFolderPath(Environment.Special
Folder
.MyDocuments) + @"/wp.db", FileMode.OpenOrCreate);
string streamobject = new StreamReader(stream).ReadToEnd();
}

配置完畢以后就可以使用我的文檔的文件了。使用我的文檔的文件,App.Current.HasElevatedPermissions必須為true.

使用內嵌資源文件

  所謂內嵌資源文件就是把程序需要用到的offline文件打包到XAP包里面。可以參考 Silverlight如何內嵌資源,適用于Windows Phone

XDocument xDoc = XDocument.Load(@"db/wp.xml");

程序可以讀取xml文件。

Image image = new Image();
image.Source = new BitmapImage(new Uri("Images/" + station.Image, UriKind.Relative));

  也可以使用圖片文件。

image

但是不能打開文件進行操作。

SaveFileDialog

SaveFileDialog 為用戶提供了把文件保存到其他目錄的可能性,但是其具有限制性,必須由用戶操作,不能直接通過程序把文件保存到其他位置上。

image

SaveFileDialog textDialog;
public MainPage()
{
InitializeComponent();
textDialog = new SaveFileDialog();
textDialog.Filter = "Text Files | *.txt";
textDialog.DefaultExt = "txt";
}

private void button1_Click(object sender, RoutedEventArgs e)
{
bool? result = textDialog.ShowDialog();
if (result == true)
{
System.IO.Stream fileStream = textDialog.OpenFile();
System.IO.StreamWriter sw = new System.IO.StreamWriter(fileStream);
sw.WriteLine("Writing some text in the file.");
sw.Flush();
sw.Close();
}
}

關于Windows Phone數據庫的思考

  Windows Phone不支持直接操作物理文件。沿用了傳統Silverlight的做法,使用了Isolated Storage的虛擬目錄空間。我想Isolated Storage對于Silverlight來說是不錯的做法,程序不能直接操作物理文件,這樣有效防止病毒的傳播。但是Windows Phone從文件系統的角度看就是一臺PC,如果PC本地程序(例如Winform和WPF)都不能操作物理文件,那也太杯具了。如果這個問題一直不能解決,Windows Phone第三方數據庫永遠都會有突破,因為沒辦法把預先定義的數據讀取出來。

  目前解決方法有二:

  1. 等待微軟出SQL CE for Windows Phone。我們不可以做,不代表微軟不可以做,微軟可以寫原生代碼(native C++)的。理論上什么都能做出來。

  2. 使用云和網絡存儲,沒想到微軟現在走的那么前,比google還絕,什么都用云。

之前認為微軟是重點關注桌面系統,因為大部分收入來源于Windows和Office,而google重點關注Web,由于沒有自身的操作系統,什么都想使用Web一統天下。但是從微軟發布IE9對HTML5的支持可以看到,微軟也對Web和云投入很大。但是基于Windows Phone來說,還是提供本地支持比較好,因為移動設備網絡連通性沒有其他電腦設備好,離線應用還具有很大市場。

NET技術關于Windows Phone數據庫和Silverlight本地文件操作,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 三级黄色在线观看 | 国产女合集第六部 | 久久精品无码人妻无码AV蜜臀 | 无遮18禁在线永久免费观看挡 | 在线亚洲97se | 亚洲欧美激情精品一区二区 | 美女被黑人巨大进入 | 国产又爽又黄又不遮挡视频 | 在线日本高清日本免费 | 草莓视频在线观看完整高清免费 | 欧美5g影院天天爽天天看 | 大香伊蕉在人线国产最新 | 黄色a三级三级三级免费看 黄色a三级免费看 | 亚洲九九视频 | 日本高清天码一区在线播放 | 羞羞影院午夜男女爽爽影院网站 | 99久久久精品免费观看国产 | 久青草国产在线视频亚瑟影视 | 国产乱国产乱老熟300部视频 | 乌克兰内射私拍 | 欧美午夜精品久久久久久浪潮 | 毛片手机在线观看 | 混乱家庭电影完整版在线看 | 亚洲国产综合另类视频 | 精品国产乱码久久久久久软件 | 欧美日韩中文在线字幕视频 | 少妇内射视频播放舔大片 | 亚洲国产在线观看免费视频 | 久久机热免费视频 | 精品国产免费第一区二区 | 午夜男女爽爽羞羞影院在线观看 | 日韩欧美一区二区三区免费看 | 美女隐私黄www视频 美女议员被泄裸照 | 免费精品国产人妻国语麻豆 | 少妇无码吹潮久久精品AV网站 | 高H黄暴NP辣H一女多男 | 成人精品视频 | 久久中文字幕人妻熟AV女蜜柚M | 亚洲专区中文字幕视频专区 | 久久五月综合婷婷中文云霸高清 | 久久日韩精品无码一区 |