2014-01-06 2 views
1

Приветствие.Доступ к папкам на одном сервере через ASP.NET

Я разрабатываю веб-приложение ASP.NET и пытаюсь перечислить файлы в нескольких слоях папок на одном сервере, но находится в другой папке (папка с файлами и папка веб-приложения).

Причина, по которой я хотел бы получить доступ к файлу, состоит в том, что мне нужно было бы указать дату создания и имя файла. Мое приложение заполняет детали gridview динамически без использования базы данных, а также предоставляет функции для его загрузки по одному или заархивировать все файлы вместе и загружать их в виде сжатого zip-файла.

В настоящее время мой подход заключается в том, чтобы предоставить доступ к этим папкам, и мое приложение обращается к нему, как к файловой системе. Чтобы усугубить ситуацию, мне не разрешено размещать другое веб-приложение IIS.

Вопрос: - Есть ли другое обходное решение, кроме доступа к нему как общей папки?

Обновлено

private List<FileData> getFilesList(DateTime? startDate, DateTime? endDate, string exDir) 
    { 
     DirectoryInfo dir = new DirectoryInfo(exDir); 
     List<FileData> fileDataList = new List<FileData>(); 
     FileData fileEnt = null; 

     if (!dir.Exists) 
     { 
      return null; 
     } 

     if (startDate == null && endDate == null) 
     { 
      foreach (FileInfo fileInfo in dir.GetFiles()) 
      { 
       fileEnt = new FileData(); 
       fileEnt.fileName = fileInfo.Name; 
       fileEnt.createdDate = fileInfo.CreationTime; 
       fileEnt.stationCode = fileInfo.Name.Substring(0, 4); 
       fileEnt.filePath = fileInfo.DirectoryName; 
       fileDataList.Add(fileEnt); 
      } 
     } 
     else 
     { 
      foreach (FileInfo fileInfo in dir.GetFiles()) 
      { 

       if (fileInfo.CreationTime > startDate && fileInfo.CreationTime < endDate) 
       { 
        fileEnt = new FileData(); 
        fileEnt.fileName = fileInfo.Name; 
        fileEnt.createdDate = fileInfo.CreationTime; 
        fileEnt.stationCode = fileInfo.Name.Substring(0, 4); 
        fileEnt.filePath = fileInfo.DirectoryName; 
        fileDataList.Add(fileEnt); 
       } 
      } 
     } 

     return fileDataList; 
    } 

Это фрагмент частично, что из моего ASP.NET веб-приложения.

Я пытаюсь получить к нему доступ, как в папке C: \ FolderA \ SubfolderB, так как я создал страницу конфигурации страницы ASP.NET, чтобы подражать папке, просматривающей модальную, чтобы мой пользователь мог указать, в какую папку должно находиться мое веб-приложение из всех файлов внутри.

потока идет, как: - 1) Пользователя выберите родительскую папку (Folder A) 2) Система получить список подкаталогов из папки A. 3) Системы перебирать все подпапки перечислить все имя файла вложенной папки в и информацию из списка подпапок.

Однако, когда я указываю «F: \ Reports \ FolderA \», я не могу получить полный список. Однако, когда я использую \ ServerName \ FolderA, я могу получить полный список.

Мое приложение расположено в E: \ NETPrograms, в то время как мои файлы находятся в F: \ Reports \ FolderA.

Теперь команда безопасности заявляет, что папка для обмена запрещена, и мне необходимо найти для нее другое обходное решение.

Прошу совета.

+0

Я не понимаю, о чем вы просите. Нет причин, учитывая правильные разрешения, ваше приложение не может получить доступ к файлам на сервере. –

+0

зачем вам работать? можете ли вы опубликовать код, который вы используете для доступа к папке, например файловой системе. –

+0

Если ваши файлы находятся в 'F: \ Reports \ FolderA', почему вы пытаетесь получить к ним доступ через' C: \ FolderA'? –

ответ

1

Я предполагаю, что вы дали ему разрешение путем совместного использования этой папки с каждым. Если вы не хотите публиковать его публично, вы можете перейти в свойство Папка -> Безопасность и предоставить разрешения на чтение для IIS_USER. Таким образом, он может быть доступен IIS_USER и использоваться в вашем приложении и не будет публично распространяться.

+0

Привет, Имран, ты спас мой день! Большое спасибо за Вашу помощь. :) Привет. –

Смежные вопросы