2012-01-11 2 views
5

작동하지 않습니다 동일한 폴더에 대화 가지고, 모든 실행에서OpenFileDialog를 InitialDirectory는이 코드가

OpenFileDialog dialog = new OpenFileDialog(); 
dialog.InitialDirectory = GetDataPath(...); 
dialog.AutoUpgradeEnabled = false; 
dialog.Filter = GetFilter(...); 
if (dialog.ShowDialog(this) == DialogResult.OK) 
{...} 

내가 기대를 - GetDataPath (...) 폴더를하지만, 마지막에 남아 선택한 폴더.

올바른 동작입니까? 이 문제를 해결하는 방법을 알고 있습니까? Windows가 마지막으로 사용한 경로를 레지스트리에 저장하는 경우 레지스트리를 찾는 방법을 알고 있습니까?

EDIT1 :

으로 :

dialog.AutoUpgradeEnabled = true; 

가 ... 예상대로

EDIT2을하고있다 : 같은 문제로 여기 Any known problems with getting SaveFileDialog's InitialDirectory property working in Windows 7?

+0

[SaveFileDialog의 초기 디렉터리 설정?] (http://stackoverflow.com/questions/1175242/setting-the-initial-directory-of-an-savefiledialog) –

+0

InitialDirectory가 사용되지 않는다는 점에 유의하십시오. FileName (s)을 선택한 경우 ... 샘플 코드에서는 대소 문자를 구분하지 않습니다. – zeFrenchy

+0

@Cody Gray 그것은 중복되지 않습니다. 나는 이미 그 해법을 시도해 보았고 작동하지 않는다. – Felics

답변

3

그것은 설정해야 할 수도 있습니다 RestoreDirectory

OpenFileDialog dialog = new OpenFileDialog(); 
dialog.InitialDirectory = GetDataPath(...); 
dialog.RestoreDirectory = true; 
dialog.AutoUpgradeEnabled = false; 
dialog.Filter = GetFilter(...); 
if (dialog.ShowDialog(this) == DialogResult.OK) 
{...} 

확인이 link

+0

문제가 있습니다. 유적. 나는 이미 전에 이것을 시도했다. – Felics

1

나는이 방식으로 작동 할 수있는 코드를 가지고 : 나는 너무이에 문제가있다

dialog.InitialDirectory = Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%") + "\\Videos";

-1

합니다. 다음은 어떻게 수정했는지 보여줍니다.

bakDir은 OpenFileDialog에 사용할 초기 디렉토리 경로가 포함 된 문자열입니다. 나도 다른 장소에있는 다른 "솔루션"을 시도

 openFile = null; 
1

을하지만, 그들 중 누구도 제대로 작동하지 : 선택한 파일을 당신의 일을 완료 할 때

 OpenFileDialog openFile = new OpenFileDialog(); 
     if (!Directory.Exists(bakDir)) 
     { 
      Directory.CreateDirectory(bakDir); 
     } 
     openFile.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory + @"DbBackups"; 

그리고,이 전화 바로이 레지스트리에서 MRU 목록 항목이 같이

대신 대화 상자의 InitialDirectory 속성을 설정하는 ... 내 자신의 간단한 해결 방법은 여기에/그러나 당신의 경로에 FileName 속성을 설정하지만,,674 선택과 결합, 예 :

dialog.FileName = Path.Combine(myPath, "*.*"); 
5

InitialDirectory에 파일 이름을 포함하지 마십시오. 경로 만.

From msdn : Windows Vista에서 InitialDirectory가 디렉토리 경로가 아닌 전체 파일 이름으로 설정된 경우 초기 디렉토리는 응용 프로그램 경로 또는 사용자가 마지막으로 파일을 선택한 디렉토리로 기본 설정됩니다.

0

같은 문제가있었습니다.

string imgPath = AppDomain.CurrentDomain.BaseDirectory + @"Images\"; 

초기 디렉토리를 표시하지 않습니다 :이 코드를 사용 .내가 마지막 슬래시를 제거한 경우

는하지만 :

string imgPath = AppDomain.CurrentDomain.BaseDirectory + @"Images"; 

그래서 제대로 표시 초기 디렉토리를 시작했다. 백 슬래시를 복원하면 잘못된 내용이 표시되지 않지만 이해할 수는 없지만 그렇습니다.

2

그 대답은 (Windows 7) 도움이되지 않았습니다.

내 경로는 다음과 같이 보았다 : "C :/XXXX/YYYYY" 을가 괜찮 았는데 백 슬래시로 전환 한 후, 내 경로는 이제 다음과 같습니다 : "C : \ xxxxx는 \ YYYYY"나는 문제가 있었다

0

이것을 사용하여 마지막 디렉토리 만 표시합니다. 드라이브 문자가없는 네트워크 경로를 사용하고있었습니다. 서버 이름 앞에 다른 "\"를 추가해야했습니다.

openFileDialog1.InitialDirectory = "\\\servernam01\\group.data\\EXTERNAL PROJECTS\\VSCHART\\ercotfiles\\"; 

을하지만이 작업 한 :

이 작동하지 않았다

openFileDialog1.InitialDirectory = "\\\\servernam01\\group.data\\EXTERNAL PROJECTS\\VSCHART\\ercotfiles\\"; 
0

이 나에게 일어나고,하지만 문제는 달랐다. InitialDirectory에 사용했던 경로에 오타가있었습니다. 내가 고칠 때 나는 괜찮 았어. 이 문제가 발생하면 출력 창을 확인하십시오.

0

내 경우에는 'InitialDirectory'가 없기 때문에 작동하지 않습니다.

if (!Directory.Exists(InitialDirectory)) 
     Directory.CreateDirectory(InitialDirectory); 
0

나는 해결책을 시도했지만 성공하지 못했지만 내게 효과가 있었던 것은 내 경로에서 "/"후행을 제거하는 것입니다.

path = path.TrimEnd(new char[] { '\\' }); 

그러면 제대로 작동합니다.

관련 문제