Место общения программистов C#
Anonymous
Почему тест File.Exists не работает ни на Windows, ни на Android в приложении C# .net MAUI?
Сообщение
Anonymous » 08 дек 2024, 21:35
Это изменение моего исходного вопроса.
У меня есть приложение C# .Net MAUI, которое проверяет наличие исходного файла (стандартный Project/Resources/Raw/AboutAssets.txt) во время события OnAppearing().
Мой вопрос: почему этот тест File.Exists не работает Windows или Android?
Мой код
Код: Выделить всё
using System.Diagnostics;
namespace SourceFileExists2;
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
Debug.WriteLine($"APP DATA DIRECTORY = {FileSystem.Current.AppDataDirectory}");
string sourceFile = "AboutAssets.txt";
Debug.WriteLine($"SOURCE FILE = {sourceFile}");
Debug.WriteLine($"FILE EXISTS 1 = {File.Exists(System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, sourceFile))}");
string sourcePath = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, sourceFile);
Debug.WriteLine($"SOURCE PATH = {sourcePath}");
Debug.WriteLine($"FILE EXISTS 2 = {File.Exists(sourcePath)}");
}
}
Вывод Windows
Код: Выделить всё
APP DATA DIRECTORY = C:\Users\Jason\AppData\Local\Packages\fd35e565-25c7-4731-bfd1-6267e4eafe80_9zz4h110yvjzm\LocalState
SOURCE FILE = AboutAssets.txt
FILE EXISTS 1 = False
SOURCE PATH = C:\Users\Jason\AppData\Local\Packages\fd35e565-25c7-4731-bfd1-6267e4eafe80_9zz4h110yvjzm\LocalState\AboutAssets.txt
FILE EXISTS 2 = False
Вывод Android
Код: Выделить всё
[0:] APP DATA DIRECTORY = /data/user/0/com.companyname.sourcefileexists2/files
[0:] SOURCE FILE = AboutAssets.txt
[0:] FILE EXISTS 1 = False
[0:] SOURCE PATH = /data/user/0/com.companyname.sourcefileexists2/files/AboutAssets.txt
[0:] FILE EXISTS 2 = False
Почему проверка существования файла не работает ни в Windows, ни в Android?
Подробнее здесь:
https://stackoverflow.com/questions/763 ... -sharp-net
1733682902
Anonymous
[b]Это изменение моего исходного вопроса.[/b] У меня есть приложение C# .Net MAUI, которое проверяет наличие исходного файла (стандартный Project/Resources/Raw/AboutAssets.txt) во время события OnAppearing(). [img]https://i.sstatic.net/PQejL.png[/img] [b]Мой вопрос: почему этот тест File.Exists не работает Windows или Android?[/b] Мой код [code]using System.Diagnostics; namespace SourceFileExists2; public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } protected override void OnAppearing() { base.OnAppearing(); Debug.WriteLine($"APP DATA DIRECTORY = {FileSystem.Current.AppDataDirectory}"); string sourceFile = "AboutAssets.txt"; Debug.WriteLine($"SOURCE FILE = {sourceFile}"); Debug.WriteLine($"FILE EXISTS 1 = {File.Exists(System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, sourceFile))}"); string sourcePath = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, sourceFile); Debug.WriteLine($"SOURCE PATH = {sourcePath}"); Debug.WriteLine($"FILE EXISTS 2 = {File.Exists(sourcePath)}"); } } [/code] Вывод Windows [code]APP DATA DIRECTORY = C:\Users\Jason\AppData\Local\Packages\fd35e565-25c7-4731-bfd1-6267e4eafe80_9zz4h110yvjzm\LocalState SOURCE FILE = AboutAssets.txt FILE EXISTS 1 = False SOURCE PATH = C:\Users\Jason\AppData\Local\Packages\fd35e565-25c7-4731-bfd1-6267e4eafe80_9zz4h110yvjzm\LocalState\AboutAssets.txt FILE EXISTS 2 = False [/code] Вывод Android [code][0:] APP DATA DIRECTORY = /data/user/0/com.companyname.sourcefileexists2/files [0:] SOURCE FILE = AboutAssets.txt [0:] FILE EXISTS 1 = False [0:] SOURCE PATH = /data/user/0/com.companyname.sourcefileexists2/files/AboutAssets.txt [0:] FILE EXISTS 2 = False [/code] [b]Почему проверка существования файла не работает ни в Windows, ни в Android?[/b] Подробнее здесь: [url]https://stackoverflow.com/questions/76318273/why-does-file-exists-test-not-work-on-either-windows-or-andoird-in-c-sharp-net[/url]