我有一个 Windows 服务,它托管一个 WCF 服务,以允许远程文件和文件夹浏览。 Windows 服务在本地系统帐户下运行。
浏览 c:\
驱动器时,服务会报告该文件夹中超过 2800 个文件。
我单步执行了代码,它确实报告了 >2800 个文件。
这怎么可能是正确的?
C# 代码
//Files Manager
public ReturnClass FindSubFiles(String Folder_To_Search, String User, String SessionId)
{
ReturnClass myReturnClass = new ReturnClass(-1, String.Empty, String.Empty, null, null, null, null);
try
{
Logging.Write_To_Log_File("Entry", MethodBase.GetCurrentMethod().Name, "", "", "", "", User, SessionId, 1);
string[] filePaths = Directory.GetFiles(Folder_To_Search);
int count = 0;
foreach (string Folder in filePaths)
{
filePaths[count] = Path.GetFileName(filePaths[count]);
count++;
}
myReturnClass.ErrorCode = 1;
myReturnClass.FilePaths = filePaths;
Logging.Write_To_Log_File("Exit", MethodBase.GetCurrentMethod().Name, "", "", "", "", User, SessionId, 1);
return myReturnClass;
}
catch (Exception ex)
{
Logging.Write_To_Log_File("Error", MethodBase.GetCurrentMethod().Name, "", "", ex.ToString(), "", User, SessionId, 2);
myReturnClass.ErrorCode = -1;
myReturnClass.ErrorMessage = ex.ToString();
return myReturnClass;
}
}
最佳答案
将其粘贴到 C# 控制台应用程序中,看看它会输出什么。您必须在folder_To_Search 中传递一些意外的内容,或者c:\中的文件数量比您想象的要多。
var Folder_To_Search = @"c:\";
string[] filePaths = Directory.GetFiles(Folder_To_Search);
int count = 0;
foreach (string Folder in filePaths)
{
filePaths[count] = Path.GetFileName(filePaths[count]);
count++;
}
Console.WriteLine(count);
Console.ReadKey();
关于时间:2019-05-17 标签:c#wcf文件和文件夹浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224063/