我需要我的應用程序要求用戶瀏覽到特定的文件,保存該文件的位置,然後從文本框中向其中寫入一個字符串。保存.txt文件的文件路徑
但是,我只需要我的最終用戶瀏覽到文件第一次應用程序啓動。只有一次。
這裏是我的困境,如何才能讓我的應用程序記住如果它是第一次啓動?
我需要我的應用程序要求用戶瀏覽到特定的文件,保存該文件的位置,然後從文本框中向其中寫入一個字符串。保存.txt文件的文件路徑
但是,我只需要我的最終用戶瀏覽到文件第一次應用程序啓動。只有一次。
這裏是我的困境,如何才能讓我的應用程序記住如果它是第一次啓動?
我想你想要的文件夾,而不是一個文件,但這是除了點。
您可以使用UserSetting(請參閱項目屬性,設置)並使用空值或無效值進行部署。只有當您從設置中讀取無效值時,纔會啓動對話框。
這是基於每個用戶的。
您可以在.NET中使用註冊表,但是您確實希望儘可能遠離它。庫不在System名稱空間中的事實是一個指示器。
將在註冊表中或在用戶的Documents and Settings文件夾中的配置文件中選擇的文件保存。
要獲取到本地程序的路徑,使用方法:
string path = Environment.GetFolderPath(Environment.LocalApplicationData);
我該怎麼做? – 2009-08-15 17:39:34
你去了哪裏,舉個例子! – 2009-08-15 17:41:40
我會使用註冊表中添加了「SavedFileLocation」爲您的應用程序條目。
有關使用註冊表的教程,請檢查here。
然後,您可以檢查密鑰是否存在,如果不存在對話框。
如果密鑰存在,你應該檢查文件的存在。如果文件不存在,您應該向用戶提供這些信息,並詢問他們是否想在那裏創建新文件或選擇新位置。
否則,取這個值並保存它的運行時間。
CODE:
AppInitialization()
{
RegistryKey appKey = Registry.CurrentUser.OpenSubKey(
@"Software\YourName\YourApp"
?? Registry.CurrentUser.CreateSubKey(@"Software\YourName\YourApp");
this.fileLocation = appKey.GetValue("SavedFileLocation")
?? GetLocationFromDialog()
?? "DefaultFileInCurrentDirectory.txt";
}
private static string GetLocationFromDialog()
{
string value = null;
RegistryKey appKey = Registry.CurrentUser.OpenSubKey(
@"Software\YourName\YourApp"
?? Registry.CurrentUser.CreateSubKey(@"Software\YourName\YourApp");
using(OpenFileDialog ofd = new OpenFileDialog())
{
if(ofd.ShowDialog() == DialogResult.OK)
{
value = ofd.File;
appKey.SetValue("SavedFileLocation", value);
}
}
return value;
}
好吧,這不是「如果這是第一次啓動應用程序」,但它是「如果我有一個'有效'的文件位置記得。」 您可以通過此設置保存「NotFirstTime」存在/不存在的設置。 – maxwellb 2009-08-15 17:55:06
我認爲文件很有意義。 OP正在記憶一個要追加/寫入的文件。 – maxwellb 2009-08-15 17:41:25
你的建議聽起來很合理,但對我來說這是中國人!我不知道你的意思是「用一個空的或無效的值來部署它」。謹慎地闡述一下? – 2009-08-15 17:52:20
查看http://msdn.microsoft.com/en-us/library/k4s6c3a0.aspx關於用戶設置的更多信息。查看http://msdn.microsoft.com/en-us/library/wabtadw6.aspx以獲取有關使用設計器來管理它們的信息。 – 2009-08-15 18:54:33