2013-10-01 2 views
1

Как установить исходный каталог, где хранятся мои тестовые данные?C# OpenFileDialogue Исходный каталог с использованием относительного пути

var relPath = System.IO.Path.Combine(Application.StartupPath, "../../") 

dlg.Title = "Open a Credit Card List"; 
dlg.InitialDirectory = relPath ; 

каталог по умолчанию он открывает к тому, где .exe существует: Проект2 \ Проект2 \ Bin \ Debug

Я хочу, чтобы открыть по умолчанию в папке project2 где существует мой тест данных. Но это не позволяет мне перемещаться по родительскому каталогу. Как мне обойти это?

ответ

2

Вы можете использовать Directory.GetParent(string path)

string relPath = Directory.GetParent(Application.StartupPath).Parent.FullName; 

Или с помощью DirectoryInfo

DirectoryInfo drinfo =new DirectoryInfo(path); 

DirectoryInfo twoLevelsUp =drinfo.Parent.Parent; 
dlg.InitialDirectory = twoLevelsUp.FullName;; 
0

Чтобы преобразовать относительный путь к абсолютному пути, который вы можете использовать Path.GetFullPath()

var relPath = System.IO.Path.Combine(Application.StartupPath, @"\..\.."); 
relPath = Path.GetFullPath(relPath); 
dlg.InitialDirectory = relPath; 

В качестве альтернативы, если вы хотите смените рабочий каталог на ваш tes т данные:

Directory.SetCurrentDirectory(relPath); 

Дополнительная информация: http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx http://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory.aspx

+0

Вы будете хотеть либо объявить эту строку '@', используйте '\\' или изменить направление этих косых черт, иначе вы получить ошибку компилятора. –

+0

Упс, вот что вы получаете за то, что набрали ответ в спешке. Исправлена. – codemonkeh

Смежные вопросы