[英]How to set localappdata path properly, not showing the full path(Path.Combine & Environment.GetFolderPath)
我正在嘗試 Path.Combine,但突出顯示了字符串(appdatapath),助手說“字段初始化程序無法引用非靜態字段、方法或屬性'MySuperAPP.appdatapath'”
代碼是:
string appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string path = Path.Combine(appdatapath, "second/part/of/folderpath");
我想要的是:字符串路徑=“C:/Users/USER/AppData/Local/Some/Dir/”
我嘗試了什么:
string static appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string static path = Path.Combine(appdatapath,"second/part/of/folderpath").ToString;
和
public static string GetMyLocalAppDir()
{
return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).ToString();
}
string path = Path.Combine(GetMyLocalAppDir(),"second/part/of/folderpath").ToString;
我認為我嘗試的變體可能是錯誤的..)需要你的建議)謝謝!)
當您initialize
一個字段時(這意味着:當您在runtime
為一個動態字段提供一個值時)它必須是一個static
值。 因此,您必須將“appdatapath”聲明為static
。
public partial class MainWindow : Window
{
private static string appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
private (static) string path = System.IO.Path.Combine(appdatapath, "second/part/of/folderpath"); //make this static if you want that this field can't be changed.
public MainWindow()
{
InitializeComponent();
}
}
還要確保您的聲明順序正確:
public or private
static or not
類型,例如name of variable
type eg string
名稱
最后:如果您有更多目錄要組合,請將每個部分分開放置:
Path.Combine(appdatapath, "second", "part", "of", "folderpath")
public static void Read_bootup3_file()
{
qq = 0;
string downloadz2;
string fileNameSDcard = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "download.txt");
string CurrentContents;
CurrentContents = fileNameSDcard;
//CurrentContents = File.ReadAllText(fileNameSDcard);
File.WriteAllText(fileNameSDcard, CurrentContents);
using (StreamReader sr = new StreamReader(fileNameSDcard))
{
downloadz2 = sr.ReadToEnd();
}
//downloadz = downloadz2.ToCharArray();
qq = 0;
for (leep = 0; leep <= lotsize; leep++)
{
for (lep = 0; lep <= 20; lep++)
{
Tester.garage_array_database[lep, leep] = downloadz[qq].ToString();
qq++;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.