我有一个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();
我传入的路径是c:我应该传入的是c:\
c#代码
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;
}
}
谢谢Damo