问候。
我正在开发一个 ASP.NET Web 应用程序,并尝试列出同一服务器上多层文件夹中的文件,但位于不同的文件夹(文件文件夹和 Web 应用程序文件夹)。
我想要访问该文件的原因是因为我需要读取该文件的创建日期和文件名。我的应用程序在不使用任何数据库的情况下动态填充 gridview 上的详细信息,并且还提供了逐一下载或将所有文件压缩在一起并将其作为压缩 zip 文件下载的功能。
目前我的方法是共享该文件夹,并且我的应用程序像文件系统一样访问它。更糟糕的是,我不允许托管另一个 IIS Web 应用程序。
问题:- 除了作为共享文件夹访问之外还有其他解决方法吗?
已更新
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 Web 应用程序的部分内容的片段。
我尝试像在 C:\FolderA\SubfolderB 中一样访问它,因为我创建了一个配置 ASP.NET 页面来模拟文件夹浏览模式,以允许我的用户指定我的 Web 应用程序应列出哪个文件夹里面的所有文件。
流程如下:- 1) 用户选择父文件夹(文件夹A) 2) 系统从文件夹A获取子文件夹列表。 3) 系统遍历所有子文件夹,从子文件夹列表中列出所有子文件夹的文件名和信息。
但是,每当我指定“F:\Reports\FolderA\”时,我都无法获取完整列表。但是,当我使用\ServerName\FolderA 时,我可以获得完整列表。
我的应用程序位于 E:\NETPrograms,而我的文件位于 F:\Reports\FolderA。
现在,安全团队表示禁止共享文件夹,我需要找到其他解决方法。
请指教。
最佳答案
我想您已经通过与所有人共享该文件夹来授予它权限。 如果您不想公开共享,可以进入文件夹属性 -> 安全性,为 IIS_USER 授予读取权限。 这样,它就可以由 IIS_USER 访问并在您的应用程序中使用,并且不会公开共享。
关于c# - 通过 ASP.NET 访问同一服务器内的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945046/