Подтвердить что ты не робот

Путь к файлу проекта?

Я работаю над медиаплеером на С#, но когда я хочу выполнить свой тест, у меня проблема.

Мне нужно создать новую песню объекта со следующим путем:

@"C:\Users\Jesus Antonio\Desktop\JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"

Это работает, но когда я меняю компьютер, я должен переписать весь путь, Мой проект называется JukeboxV2.0

В java я помню, что вы можете просто написать путь, например

@"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"

Это сэкономит много времени, потому что я могу взять свой проект на разные компьютеры, и он работает, но здесь я не знаю, как это сделать, кто-нибудь знает?

4b9b3361

Ответ 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;