";找不到路径的一部分“;下载文件

本文关键字:下载 一部分 文件 路径 quot 找不到 | 更新日期: 2023-09-27 18:29:16

我在开发一个windows应用程序时遇到了一种情况,下载文件引发了"找不到路径的一部分"异常。

我用来将远程zip文件保存到硬盘的方法如下:

    private void f_begin_download(string remoteURL)
    {
        string directoryName = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
        //MessageBox.Show(directoryName);
        filePath = directoryName + "''tmp''";
        filePath = f_make_directory(filePath);
        Uri remoteURI = new Uri(remoteURL);
        System.Net.WebClient downloader = new System.Net.WebClient();
        downloader.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(f_downloader_DownloadFileCompleted);
        try
        {
            downloader.DownloadFile(remoteURI, filePath);
        }
        catch (Exception ex)
        {
            MessageBox.Show(remoteURI.ToString());
            MessageBox.Show(filePath);
            MessageBox.Show(ex.ToString());
        }
    }

这个方法实际上在我的应用程序目录中创建/tmp/文件夹。它也成功地创建了文件夹:

    public static string f_make_directory(string path)
    {
        try
        {
            System.IO.DirectoryInfo newFolder = new System.IO.DirectoryInfo(path);
            if (!newFolder.Exists)
            {
                newFolder.Create();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        return path;
    }

但当我运行这个过程时,异常看起来是这样的:

System.Net.WebException: An exception occurred during a WebClient request. -->     System.IO.DirectoryNotFoundException: Could not find a part of the path' C:'Users'Hudson Atwell'Desktop'The Big Test Folder'tmp''. 
at System.IO.__Error.WinIOError(Int32 errorCode,String maybeFullPath) 
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRight, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msyPath, Boolean bFromProxy, Boolean useLongPath) 
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Net.WebClient.DownloadFile(Uri address, String fileName) 

在C:''Users''Hudson Atwell''Documents''Visual Studio''Projects''Test Project''Test Project]Windows''window_update.cs:line 125 中的WindowsFormsApplication1.window_updater.f_begin_download(字符串远程URL)

我也要求以管理员身份运行该解决方案。

对我做错了什么有什么建议吗?

";找不到路径的一部分“;下载文件

您正在传递一个目录名,而该方法需要一个文件名。尝试使用该名称创建文件失败,因为已经有一个使用该名称的目录。