因此,我製作了一個小型WPF應用程序,允許您對文件夾/文件結構進行模板化並保存/加載它們。Windows資源管理器不顯示在WPF應用程序中創建的文件夾/文件
當應用程序最初安裝時,它在根安裝文件夾中有一個Template文件夾。我開始保存和加載模板(使用SaveFileDialog和OpenFileDialog,然後寫入/從xml分析)。這工作得很好。
然後,我想測試一下,如果我要刪除該文件夾,那麼將通過這些按鈕首先打開哪個目錄(因爲即使是全新安裝,它也會轉到最後打開的目錄,我想要將其清除)。但是,在刪除文件夾後,它仍然出現在文件對話框中。我可以在文件對話框中創建新的文件夾,甚至可以解析不存在的XML文件。所以現在,在應用程序中,我可以看到一個Templates文件夾,從零開始加載XML並將XML文件保存到該文件夾中,並且該應用程序完美工作。如果我在Windows資源管理器中訪問該目錄,Templates目錄不存在,我也無法打開任何文件(我也嘗試使用搜索框和F5,但未顯示)。
任何想法可能會導致此錯誤?
下面是基本的代碼我在做保存/載入這些文件:
private void LoadTemplate (object sender , RoutedEventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "xml files |*.xml";
dialog.FilterIndex = 2;
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string path = dialog.FileName;
XmlDocument doc = new XmlDocument();
doc.Load (path);
if (doc.DocumentElement != null)
{
XmlNodeList nodes = doc.DocumentElement.SelectNodes ("Folders") [ 0 ].ChildNodes;
List <Folder> _folders = new List <Folder>();
int currentLevel = 0;
foreach (XmlNode node in nodes)
{
addItemToList (ref _folders , node , currentLevel);
}
folders = _folders;
DeployHierarchy.ItemsSource = folders;
DeployHierarchy.Items.Refresh();
}
}
}
private void SaveTemplate(object sender, RoutedEventArgs e)
{
SaveFileDialog savefile1 = new SaveFileDialog();
savefile1.Filter = "xml files |*.xml";
savefile1.FilterIndex = 2;
if (savefile1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement ("Root");
XmlElement currentEl = (XmlElement) root.AppendChild (doc.CreateElement ("Folders"));
doc.AppendChild (root);
for (int i = 0; i < folders.Count; i++)
{
addElement(ref doc , ref currentEl, ref i, ref currentEl);
}
doc.Save (savefile1.FileName);
}
}
這是正確的,謝謝! –