Reputation: 3012
I have an Outlook 2013 Addin written with VSTO and VS2013. I have a save file dialog where I set Initial Directory to a network mount. Saving to the path with MailItem.SaveAs()
works, but when I use it with saveFileDialog1.InitialDirectory = "W:/etc/etc/";
I just get my Documents library as the Initial Directory. Why might it not work?
Here is the relevant code:
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.FileName = filename;
saveFileDialog1.InitialDirectory = path;
saveFileDialog1.AddExtension = false;
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.DefaultExt = "\".mht\"";
saveFileDialog1.Filter = "\"MHT Files|*.mht|All Files|*.*\"";
DialogResult result = saveFileDialog1.ShowDialog();
That's all the pertinant code. FileName works fine, and path is in the format "W:/Folder/Folder/"
Thanks
Upvotes: 1
Views: 3261
Reputation: 719
Seems InitialDirectory does not accept / in the path but requires backslash
This example works for me.
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.FileName = "c:/temp/somefilename.txt";
saveFileDialog1.InitialDirectory = "c:\\temp\\";
saveFileDialog1.AddExtension = false;
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.DefaultExt = "\".mht\"";
saveFileDialog1.Filter = "\"MHT Files|*.mht|All Files|*.*\"";
DialogResult result = saveFileDialog1.ShowDialog();
Upvotes: 3
Reputation: 719
Have a look at this article about String literals
You should either use double back slashes if you want one backslash
saveFileDialog1.InitialDirectory = "W:\\etc\\etc\\";
or use the @ sign:
saveFileDialog1.InitialDirectory = @"W:\etc\etc\";
Also you should set the RestoreDirectory in order to set the working directory back to your application directory. Check this link for reference
saveFileDialog1.RestoreDirectory = true;
Upvotes: 2