Я знаю, что это может быть дубликат, но другие вопросы, которые я нашел по этой теме, недостаточно описывают мою проблему.Проверьте, существует ли файл в UWP
public bool FileExists(string filename)
{
try
{
if (filename != null)
{
// folder where the file is
StorageFolder folder = ApplicationData.Current.LocalFolder;
// check if file exists
if (folder.TryGetItemAsync(filename) != null)
return true;
return false;
}
return false;
}
catch (Exception e)
{
// do stuff
}
}
Моя проблема в том, что этот метод всегда возвращает true. TryGetItemAsync(string name)
должен вернуть значение null, если файл не найден. Вместо этого он возвращает System.__ComObject
, независимо от того, является ли мое имя параметра фактическим файлом или нет.
У меня есть несколько раз проверено, что файл существует в моем folder
.
Может ли кто-нибудь объяснить поведение, которое он всегда возвращает System.__ComObject
?
EDIT 1: Некоторые больше информации:
В моем main
классе, я проверяю это так:
Debug.WriteLine("Existing file = " + fileUtils.FileExists("Testfile1.txt"));
Debug.WriteLine("Not-Existing file = " + fileUtils.FileExists("Testfile2.txt"));
Как вы можете видеть, файл существует в папке (и папка в моем коде имеет правильный путь, который ведет к этой папке):
Благодарим вас за разъяснение, оно решило мою проблему :) –