MVC C # Fnding file на сервере, соответствующий условию name if - PullRequest
0 голосов
/ 11 января 2011

пытается разобраться с кодом системы, который был передан мне. Это было написано в asp.net C # MVC.

Один раздел этой системы находит файлы в папке на сервере и импортирует их в базу данных. Сведения о файлах хранятся в файле Excel, который также находится в той же папке на сервере.

В настоящее время в таблице Excel, если в столбце PDFName есть значение, система будет искать файл, соответствующий этому имени. Если соответствующего файла нет, система не будет импортировать данные.

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

        if (!string.IsNullOrEmpty(fileRow.PDFName))
        {
            try
            {
                FileInfo matchingFile = files.First(df => (df.Extension.ToLower() == ".pdf" && df.Name.Replace(df.Extension, "").ToLower() == fileRow.PDFName));

                FTPFileEntry f = new FTPFileEntry()
                {
                    FileExtension = matchingFile.Extension,
                    FileName = matchingFile.Name,
                    Name = titleRow.PDFName,
                    Type = matchingFile.Extension.Trim('.')
                };

                fileRow.FileEntry.Add(f);
            }
            catch (InvalidOperationException)
            {

            }
        }

Я просто немного не уверен в том, как выполнить построение в условии, если нет подходящего файла, сделать что-то еще. Я думал что-то вроде:

if (!string.IsNullOrEmpty(fileRow.PDFName))
        { 


            FileInfo matchingFile = files.First(df => (df.Extension.ToLower() == ".pdf" && df.Name.Replace(df.Extension, "").ToLower() == fileRow.PDFName));


            if (matchingFile != null)
            {
                FTPFileEntry f = new FTPFileEntry()
                {
                    FileExtension = matchingFile.Extension,
                    FileName = matchingFile.Name,
                    Name = titleRow.PDFName,
                    Type = matchingFile.Extension.Trim('.')
                };

                fileRow.FileEntry.Add(f);

            }
            else
            {
                //Add data to database
            }
        }

Мне просто интересно, пойду ли я в правильном направлении с этим? Любые указатели будут оценены:)

1 Ответ

2 голосов
/ 11 января 2011

Это выглядит хорошо для меня. Вы также можете использовать первый фрагмент кода и добавить данные в базу данных в секции catch, но перехват исключения может снизить производительность (не намного, но тем не менее ...)

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