Начну с очень простым кодомМои документы Путь переориентировав к OneDrive Пути
string fileName; // filename of file
// get the filename
using (OpenFileDialog openFileDialog = new OpenFileDialog()) {
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog.FilterIndex = 1;
openFileDialog.ShowDialog();
fileName = openFileDialog.FileName;
}
Что я пытаюсь сделать, это использовать .Net OpenFileDialog.
и установить InitialDirectory
пользователя, запустивший папку Мои документы.
Код устанавливает путь к исходному каталогу: C:\Users\Aaron\Documents
, который является тестовым пользователем My Documents Directory.
Когда я запускаю код, OpenFileDialog
фактически открывается в каталоге: C:\Users\Aaron\OneDrive\Documents
. Это местоположение одного диска.
Это происходит на обеих моих машинах, но не на моей машине друзей.
Почему открывается папка документов OneDrive, если это не путь, установленный на OpenFIleDialog.InitialDirectory
?
EDIT: Я должен, вероятно, обновить это. На следующий день я снова запустил свой проект, и проблема больше не возникала. Я тоже не изменил свой код. Это, должно быть, был случайный сценарий.
Side Примечание: если вы хотите, документы пользователя, вы должны использовать [ 'Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments)'] (https://msdn.microsoft.com/en-us/library/14tx8hby%28v=vs.110%29.aspx). Путь к документам может быть изменен пользователем или как функция групповой политики. – theB
@theB, очень хороший пункт. Для этого конкретного случая использования; однако путь правильный. Однако я отредактирую этот вопрос, чтобы отразить эту лучшую практику. –
Я действительно не вижу причин, почему это может быть так. Пробовали ли вы метод «Environment.GetFolderPath»? –