如何从另一种方法中读取路径

时间:2017-01-30 16:10:35

标签: c# winforms

我有一个方法从我的方法解压缩文件,我有一个单独的方法,我想创建它,以便它可以读取解压缩文件并根据需要加载它们。

    private string UnzipFiles()
    {
        Chilkat.Zip zip = new Chilkat.Zip();
        string zippedFilePath = @"C:\Users\TestData";
        string unzippedFilePath = @"C:\Users\Temp";

        bool success = zip.UnlockComponent("LIVECOZIP_3BzssvnbmYxp");

        if (!success)
        {
            string errorMsg = zip.LastErrorText;
            Console.WriteLine(errorMsg);
            return errorMsg;
        }

        string[] newzip = (Directory.GetFiles(zippedFilePath));

        foreach (string file in newzip)
        {
            success = zip.OpenZip(file);
            {
                Console.WriteLine(zip.LastErrorText);

            }
            zip.DecryptPassword = "hANhvU8MX7iq0f2M";
            int unzipCount;

            unzipCount = zip.Unzip(unzippedFilePath);
            if (unzipCount < 0)
            {
                Console.WriteLine("unzipping file");
            }
        }
        return unzippedFilePath;

以下方法是我需要帮助的地方。我想调用上面的方法,并能够读取每个文件。现在我收到了错误。

   public void LoadNewFile()
    {
        UnzipFiles();

         foreach (String file in UnzipFiles) 
         //How to call each file?
         {
           userSelectedFilePath += file + Environment.NewLine;
           names_of_files.Add(file);
         }

2 个答案:

答案 0 :(得分:2)

试试这个:

var path = UnzipFiles();
var unZippedFiles = Directory.GetFiles(path);
foreach (var file in unZippedFiles)
{
 //tratata
}

答案 1 :(得分:1)

我想说你需要更改UnzipFiles以返回字符串列表。像这样:

private List<string> UnzipFiles()
{
    Chilkat.Zip zip = new Chilkat.Zip();
    string zippedFilePath = @"C:\Users\TestData";
    string unzippedFilePath = @"C:\Users\Temp";
    var unzippedFileList = new List<string>();

    bool success = zip.UnlockComponent("LIVECOZIP_3BzssvnbmYxp");

    if (!success)
    {
        string errorMsg = zip.LastErrorText;
        Console.WriteLine(errorMsg);
        return errorMsg;
    }

    string[] newzip = (Directory.GetFiles(zippedFilePath));

    foreach (string file in newzip)
    {
        unzippedFileList.Add(file);
        success = zip.OpenZip(file);
        {
            Console.WriteLine(zip.LastErrorText);

        }
        zip.DecryptPassword = "hANhvU8MX7iq0f2M";
        int unzipCount;

        unzipCount = zip.Unzip(unzippedFilePath);
        if (unzipCount < 0)
        {
            Console.WriteLine("unzipping file");
        }
    }

    return unzippedFileList;
}