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

本文关键字:文件夹 浏览器 文件 WCF | 更新日期: 2023-09-27 17:51:11

我有一个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# WCF文件和文件夹浏览器

将此粘贴到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