簡體   English   中英

如何修復System.Net.WebException:'文件名,目錄名或卷標簽語法不正確

[英]How do I fix System.Net.WebException: 'The filename, directory name, or volume label syntax is incorrect

我正在嘗試為程序創建引導程序,並且錯誤“ System.Net.WebException:'文件名,目錄名或卷標語法不正確”不斷彈出。

我一直陷在這個問題上,一直在猜測如何解決這個問題。

String pname = "Fredysploit_v2";
String dlink = "https://pastebin.com/V5NcE09n";
string title = @"Title ";
Console.Title = pname + " Bootstrapper";

Console.ForegroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(title);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Downloading new Files...");
WebClient wc = new WebClient();
string key = wc.DownloadString(dlink);
string path = @"Update\" + pname + ".exe";
System.Net.WebClient Dow = new WebClient();
string patch = (@"Update");
Directory.CreateDirectory(patch);
//My problem ↓
Dow.DownloadFile(key, path);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(pname + " Downloaded | Updated!");
Console.WriteLine($"Now open " + patch + " and Run " + pname + ".exe");
Console.ReadKey();

我期望結果將文件下載為文本,而該文本是pastebin上的鏈接,但是實際結果是“ System.Net.WebException:'文件名,目錄名或卷標語法不正確”。

我認為發生的事情是您嘗試將整個網站作為文件下載,而不是下載在pastebin內容中鏈接的文件( 此處提供證明 )。

也許有一種獲取鏈接的方法,例如:解析網站的html並從特定的html標記中讀取內容,或者如果存在的話,使用pastebin api(我將對此進行檢查。現在有一個pastebin api (也許看看這個)


由於該API不能為您提供很大幫助,因此這里有一些代碼可以用來解析網站中的HTML: WebClient client = new WebClient(); String htmlCode = client.DownloadString(" https://pastebin.com/raw/dnfHuGAK "); WebClient client = new WebClient(); String htmlCode = client.DownloadString(" https://pastebin.com/raw/dnfHuGAK ");

這使您可以在粘貼中獲取字符串。


這將是您對代碼的最終更改,應該可以解決您的問題

    String pname = "Fredysploit_v2";
    String dlink = "https://pastebin.com/raw/dnfHuGAK"; 
    //^ changed the download link to the raw paste so you can extract your link
    string title = @"Title ";
    Console.Title = pname + " Bootstrapper";

    Console.ForegroundColor = ConsoleColor.Blue;
    Console.ForegroundColor = ConsoleColor.Cyan;
    Console.WriteLine(title);
    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine("Downloading new Files...");
    WebClient wc = new WebClient();
    string key = wc.DownloadString(dlink);
    string path = @"Update\" + pname + ".exe";
    System.Net.WebClient Dow = new WebClient();
    string patch = (@"Update");
    Directory.CreateDirectory(patch);
    Dow.DownloadFile(key, path);
    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine(pname + " Downloaded | Updated!");
    Console.WriteLine($"Now open { patch } and Run { pname }.exe");
    //^ since you are using String.Format(), make use of it :)
    Console.ReadKey();

問題是您正在獲取HTML表單pastebin的整個頁面,而不是您要查找的URL。 就像@Jon Skeet在評論中提到的那樣,請嘗試將https://pastebin.com/raw/V5NcE09n用作dlink以便其顯示如下:

String dlink = "https://pastebin.com/raw/V5NcE09n";

更新的代碼解決方案如下:

String pname = "Fredysploit_v2";
String dlink = "https://pastebin.com/raw/V5NcE09n";
string title = @"Title ";
Console.Title = pname + " Bootstrapper";

Console.ForegroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(title);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Downloading new Files...");
WebClient wc = new WebClient();
string key = wc.DownloadString(dlink);
string path = @"Update\" + pname + ".exe";
System.Net.WebClient Dow = new WebClient();
string patch = (@"Update");
Directory.CreateDirectory(patch);

Dow.DownloadFile(key, path);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(pname + " Downloaded | Updated!");
Console.WriteLine($"Now open " + patch + " and Run " + pname + ".exe");
Console.ReadKey();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM