c#wcf文件和文件夹浏览器

c#wcf文件和文件夹浏览器,c#,windows,wcf,filesystems,file-permissions,C#,Windows,Wcf,Filesystems,File Permissions,我有一个windows服务,它承载一个wcf服务,允许远程文件和文件夹浏览。windows服务在本地系统帐户下运行 浏览c:\时,将服务报告驱动到该文件夹中的2800多个文件中。 我已经一步一步地完成了代码,它确实报告了超过2800个文件 这怎么可能是正确的呢 C#代码 //Files Manager public ReturnClass FindSubFiles(String Folder_To_Search, String User, String SessionId) {

我有一个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;
    }
}
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#控制台应用程序中,看看它会显示什么。您必须在文件夹\u To \u搜索中传入意外的内容,或者文件数超过了您在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#代码

   //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;
    }
}
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

您是否考虑过隐藏文件或系统文件(如果有)?是的,但当我查看隐藏文件时,只有大约30个文件。请记住,该服务是在本地系统帐户下运行的,该帐户可能会看到甚至管理员都看不到的其他文件-我不确定。。。