Метод File.Exist (...) возвращает false - PullRequest
1 голос
/ 16 января 2012

В настоящее время я работаю над этим проектом .Net / WPF.

Я пытаюсь заставить метод проверить, существует ли файл обложки перед применением.Я чувствую, что мой адрес форматирования может быть неправильным ... Есть идеи?

Dim lobjSPEConfigService As SPEConfigurationService = New SPEConfigurationService
Dim lobjSkinFilePath As String = CStr(lobjSPEConfigService.GetApplicationSetting("SkinFileLocation", GetType(String)))

If String.IsNullOrEmpty(lobjSkinFilePath) Then
    lobjSkinFilePath = "/SPE.Infrastructure.UI/Application/Resources/Skins/LightSkin"
Else
    Dim lblnFileExist = File.Exists(lobjSkinFilePath)
    If lblnFileExist = False Then
        lobjSkinFilePath = "/SPE.Infrastructure/SPE.Infrastructure.UI/Application/Resources/Skins/LightSkin"
    End If
End If

На файл ссылаются через проект ...

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Если ваше имя файла и путь верны (не уверен, что я не вижу ваш проект), то единственное, что мне не хватает, - это расширение файла.Я предполагаю, что это .xaml

Если вы загружаете что-либо как ресурс, вы должны использовать URI пакета WPF.

Некоторые примеры:

Абсолютный путь

"pack://application:,,,/ResourceFile.xaml"
"pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"

Относительный путь

"/ResourceFile.xaml"
"/ReferencedAssembly;component/ResourceFile.xaml" 

Также избавьтесь от своего первого утверждения else ... вы ничего не делаете, когда меняете имя файла, если оно пустое.

1 голос
/ 16 января 2012

File.Exists() поиск на диске.Если он возвращает False, файл не существует на диске.

Где ищет File.Exists, зависит от CStr(lobjSPEConfigService.GetApplicationSetting("SkinFileLocation", GetType(String)))

Проверьте значение в файле конфигурации.

Убедитесь, что путь существует, и приложение имеет достаточные права для доступа к нему.

РЕДАКТИРОВАТЬ

Чтобы найти внутренний (в сборе) ресурс , используйтеResourceManager

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...