Member 11859845 Ответов: 1

File.exists(filename) не работает должным образом мое имя файла содержит пробелы


class Program
    {
        static void Main()
        {
            // See if this file exists in the same directory.
            if (File.Exists(@"D:\Smartkey_test\METADATA\Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml"))
            {
                Console.WriteLine("The file exists.");
            }
            // See if this file exists in the C:\ directory. [Note the @]
            if (File.Exists(Path.GetFileNameWithoutExtension(@"D:\Smartkey_test\METADATA\Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml")))
            {
                Console.WriteLine("The file exists.");
            }

            FileInfo fi = new FileInfo("D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml");

            string finalpath = Path.Combine("D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml");
           // string aPath = "D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml";
            bool existsvalue= File.Exists(finalpath);
            Console.WriteLine(existsvalue);

            // See if this file exists in the C:\ directory [Note the '\\' part]
            bool exists = File.Exists("C:\\lost.txt");
            Console.WriteLine(exists);
            Console.ReadLine();
        }
    }




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

У меня есть такие имена файлов, как

Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml


мне нужно проверить погоду в данной папке, чтобы этот файл не был.
File.Exists
возвращает всегда false.


Пожалуйста найдите нижеприведенную ссылку там я нашел нижеприведенные строки


The Exists method returns false if any error occurs while trying to determine if the specified file exists. This can occur in situations that raise exceptions such as passing a file name with invalid characters or too many characters, a failing or missing disk, or if the caller does not have permission to read the file.



https://stackoverflow.com/questions/18266637/why-does-system-io-file-existsstring-path-return-false


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

File.Exists(filename) is not working properly my file name contain the spaces



<pre lang="c#">



class Program
    {
        static void Main()
        {
            // See if this file exists in the same directory.
            if (File.Exists(@"D:\Smartkey_test\METADATA\Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml"))
            {
                Console.WriteLine("The file exists.");
            }
            // See if this file exists in the C:\ directory. [Note the @]
            if (File.Exists(Path.GetFileNameWithoutExtension(@"D:\Smartkey_test\METADATA\Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml")))
            {
                Console.WriteLine("The file exists.");
            }

            FileInfo fi = new FileInfo("D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml");

            string finalpath = Path.Combine("D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml");
           // string aPath = "D:\\Smartkey_test\\METADATA\\Accounting  Voucher Display.pdf 196910351_0_03192019144415.xml";
            bool existsvalue= File.Exists(finalpath);
            Console.WriteLine(existsvalue);

            // See if this file exists in the C:\ directory [Note the '\\' part]
            bool exists = File.Exists("C:\\lost.txt");
            Console.WriteLine(exists);
            Console.ReadLine();
        }
    }

Richard MacCutchan

Похоже, что у вас разное количество пробелов в именах файлов.

1 Ответов

Рейтинг:
0

OriginalGriff

Работать на меня:

string path = @"D:\Test Data\Accounting Voucher  Display.pdf 196910351_0_03192019144415.xml";
if (File.Exists(path)) Console.WriteLine("Exists");
else Console.WriteLine("Does not exist");
Я получаю Exists каждый раз.
Единственное отличие, которое я вижу, - это полный путь-я знаю, что мой диск D: содержит папку под названием "тестовые данные", а также файл под названием "Accounting Voucher Display.pdf 196910351_0_03192019144415.xml".

Проверьте остальную часть вашего пути.
Если это все еще выглядит правильно, сделайте это:
string[] files = Directory.GetFiles(@"D:\", "*.xml", SearchOption.AllDirectories);
И используйте отладчик, чтобы точно увидеть, какие файлы он может найти.