Member 12645291 Ответов: 2

Как проверить, сгенерирован ли текстовый файл в определенном пути или нет в C#


один файл .txt экспортируется внутри пути, имя которого динамически меняется после каждого запуска хранимой процедуры, которая его генерирует, расположение этого файла. txt находится под путем - D:\work\int\retail\store\export . Теперь я хочу проверить в C#, пришел ли файл .txt по этому пути или нет. Я использую приведенный ниже синтаксис, в соответствии с которым file.exists() все еще возвращает false, даже если файл .txt находится в месте экспорта.что здесь происходит?Любая помощь будет оценена по достоинству.как я могу получить последнее имя файла, поступающее в это место динамически, и перейти к следующему запросу?


ВАР Путь_к_файлу = @"D:\work\int\retail\store\export";
если (файл.Существует(Путь К Файлу))
{
//сделать это
}

Что я уже пробовал:

Я пытался получить файл вот так


ВАР Путь_к_файлу = @"D:\work\int\retail\store\export";

Файлы .txt находятся внутри папки экспорта, и имя динамическое, которое меняется после каждого запуска, как получить имя файла, а затем использовать file. exists?

0x01AA

И где находится имя файла в вашей переменной FilePath?

2 Ответов

Рейтинг:
0

ZurdoDev

Файл.Существует правильный метод; однако, поскольку вы запускаете это через ASP.Net учетная запись пользователя, запускающая пул приложений, является фактической учетной записью, выполняющей код, и эта учетная запись не имеет разрешений.

Зайдите в IIS и найдите идентификатор, используемый пулом приложений, а затем измените его на учетную запись, имеющую разрешения, или вы можете предоставить соответствующие разрешения для интересующей вас папки.


Richard Deeming

Это был бы правильный метод, за исключением того, что я подозреваю, что FilePath переменная содержит каталог путь, а не путь к файлу. :)

ZurdoDev

Хорошая точка. Я не присмотрелся достаточно внимательно. Однако, судя по предыдущему опыту, он будет работать и с папкой. Могу ошибаться, хотя.

Richard Deeming

Если вы передадите путь к каталогу File.Exists, он вернется false потому что путь-это не файл.

То же самое происходит, если вы передаете путь к файлу Directory.Exists.

Рейтинг:
0

Member 12646681

Включить Пространство Имен: Использование System. Linq;

string path= @"D:\DownLoad\";


foreach (string s in Directory.GetFiles(path, "*.txt").Select(Path.GetFileName))
           Console.WriteLine(s);


Вы получите все имя файла txt