Путь к файлу проекта?
Я работаю над медиаплеером на С#, но когда я хочу выполнить свой тест, у меня проблема.
Мне нужно создать новую песню объекта со следующим путем:
@"C:\Users\Jesus Antonio\Desktop\JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"
Это работает, но когда я меняю компьютер, я должен переписать весь путь,
Мой проект называется JukeboxV2.0
В java я помню, что вы можете просто написать путь, например
@"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"
Это сэкономит много времени, потому что я могу взять свой проект на разные компьютеры, и он работает, но здесь я не знаю, как это сделать, кто-нибудь знает?
Ответы
Ответ 1
Вы сделали бы что-то подобное, чтобы получить путь "Данные\ich_will.mp3" внутри папки приложений.
string fileName = "ich_will.mp3";
string path = Path.Combine(Environment.CurrentDirectory, @"Data\", fileName);
В моем случае он вернет следующее:
C:\MyProjects\Music\MusicApp\bin\Debug\Data\ich_will.mp3
Я использую Path.Combine
и Environment.CurrentDirectory
в моем примере. Они очень полезны и позволяют вам создавать путь, основанный на текущем местоположении вашего приложения. Path.Combine
объединяет две или более строки для создания местоположения, а Environment.CurrentDirectory
предоставляет вам рабочий каталог вашего приложения.
Рабочий каталог не обязательно совпадает с тем местом, где находится ваш executable
, но в большинстве случаев он должен быть, если не указано иное.
Ответ 2
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3")
базовый каталог + ваше имя файла
Ответ 3
Я столкнулся с аналогичной проблемой, у меня был файл в моем проекте и я хотел протестировать класс, который должен был обрабатывать файлы из FS и обрабатывать их каким-то образом. Я сделал это:
- добавил файл
test.txt
в мой тестовый проект
- в решении explorer удалил
alt-enter
(свойства файла)
- там я установил
BuildAction
в Content
и Copy to Output Directory
в Copy if newer
, я думаю, Copy always
сделал бы это также как
то на моих тестах мне просто пришлось Path.Combine(Environment.CurrentDirectory, "test.txt")
и это. Всякий раз, когда проект компилируется, он копирует файл (и весь его родительский путь, если он был, скажем, в папку), в папку bin\Debug
(или любую другую конфигурацию, которую вы используете).
Надеюсь, это поможет кому-то
Ответ 4
Попробуйте это
string fileName = "ich_will.mp3";
string path = @"Data\"+ fileName;