我的代码有问题:当我尝试从保管箱下载文件并将其放入我的漫游文件夹时出现问题,这是错误日志:
System.Net.WebException: An exception occurred during a WebClient request. ---> System.UnauthorizedAccessException: Access to the path'C:\Users\Marco\AppData\Roaming\.maycraft' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
--- End of inner exception stack trace ---
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
at System.Net.WebClient.DownloadFile(String address, String fileName)
at MayCraftLauncher.Program.downloadExist() in c:\Users\Marco\Desktop\MayCraftLauncher\C# SourceCode\MayCraftLauncher\MayCraftLauncher\Program.cs:line 71
显然,我试图以管理员权限运行 Visual Studio,但什么都没有......
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Security.Principal;
using System.IO;
using System.IO.Compression;
using Ionic.Zip;
namespace MayCraftLauncher
{
class Program
{
public static System.Threading.Thread existDownloading = new System.Threading.Thread(downloadExist);
public static string userName = Environment.UserName;
public static string path = @"C:\Users\" + userName + @"\AppData\Roaming\.maycraft\Exist";
public static string maypath = @"C:\Users\" + userName + @"\AppData\Roaming\.maycraft";
static void Main(string[] args)
{
folderExist();
}
static void check1()
{
while (!Directory.Exists(maypath))
{
System.Threading.Thread.Sleep(5000);
}
existDownloading.Start();
}
static void folderExist()
{
if (!Directory.Exists(maypath))
{
System.Diagnostics.Process.Start(@"C:\Users\Marco\Desktop\MayCraftLauncher.jar");
check1();
}
else
{
fileExist();
}
}
static void fileExist()
{
if (File.Exists(path)) //Determina se è la prima volta che l'applicazione viene eseguita
{
Console.WriteLine("Exist");
Console.ReadLine();
}
else
{
existDownloading.Start();
Console.WriteLine("Downloading...");
}
}
static void downloadExist()
{
WebClient Client = new WebClient();
DateTime btime = DateTime.Now;
path = @"C:\Users\" + userName + @"\AppData\Roaming\.maycraft\";
string publicLinkExist = @"https://dl.dropbox.com/u/35356155/minecraft/download/Exist";
//string publicLinkMods = @"https://dl.dropbox.com/u/35356155/minecraft/download/mods.7z";
string publicLinkMods = @"https://dl.dropbox.com/u/35356155/minecraft/download/mcp.7z";
try
{
//----------------File downloading-------------------
Client.DownloadFile(publicLinkExist, path);
DirectoryInfo dev = Directory.CreateDirectory(path);
string devpath = @"C:\Users\" + userName + @"\AppData\Roaming\.maycraft";
Client.DownloadFile(publicLinkMods, devpath);
DateTime atime = DateTime.Now;
Console.WriteLine("Downloading time: " + atime.Subtract(btime).TotalSeconds + " sec.");
//---------------Files Extracion-------------------
using (ZipFile zip = ZipFile.Read(devpath))
{
zip.ExtractAll(path);
}
}
catch (Exception e)
{
Console.WriteLine(e);
System.IO.File.WriteAllText(@"C:\Users\Marco\Desktop\log.txt", e.ToString());
Console.ReadKey();
}
existDownloading.Abort();
}
}
}