2013-07-10 5 views
0

Вот мой код:Изменить местоположение .zip C#

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string appdata = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); 
      string subFolderPath = System.IO.Path.Combine(appdata, ".minecraft"); 
      string bin = System.IO.Path.Combine(subFolderPath, "bin"); 
      string mods = System.IO.Path.Combine(subFolderPath, "mods"); 
      string coremods =System.IO.Path.Combine(subFolderPath, "coremods"); 
      string config = System.IO.Path.Combine(subFolderPath, "config"); 
      if (Directory.Exists(mods)) Directory.Delete(mods,true); 
      if (Directory.Exists(config)) Directory.Delete(config, true); 
      if (Directory.Exists(coremods)) Directory.Delete(coremods, true); 




      FastZip fZip1 = new FastZip(); 
      fZip1.ExtractZip(@"C:\Users\Rafa\Desktop\MagicFarm.zip", subFolderPath, "config"); 


      FastZip fZip = new FastZip(); 
      fZip.ExtractZip(@"C:\Users\Rafa\Desktop\MagicFarm.zip", subFolderPath, "mods"); 

      FastZip fZip2 = new FastZip(); 
      fZip2.ExtractZip(@"C:\Users\Rafa\Desktop\MagicFarm.zip", subFolderPath, "coremods"); 

Я хочу поставить "C: \ Users \ Рафа \ Desktop \ MagicFarm.zip" в директории проекта.

Может кто-нибудь мне помочь?

+0

Когда вы говорите «каталог проекта», что вы имеете в виду? вы хотите, чтобы программа проверила ту же папку, в которой была запущена программа, чтобы искать zip? Или вы хотите, чтобы zip распространялся с exe, поэтому ваш exe извлекал zip? –

+0

Помните, что как только ваша программа скомпилирована, она не знает, где сохраняются исходные файлы исходного кода. Единственное место, где он сможет сохранить ZIP-файл, находится в той же папке, в которой находится EXE. –

ответ

2

Вы хотите использовать File.Move. Это также показывает, как получить текущий каталог, в котором находится программа.

//your zip 
string sourceFile = @"C:\Users\Rafa\Desktop\MagicFarm.zip"; 
//the current directory that your exe is running from + the name 
string destinationFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MagicFarm.zip") 

// To move a file or folder to a new location: 
System.IO.File.Move(sourceFile, destinationFile); 
+1

Вы должны использовать Path.Combine vs. «path» + «file» –

+1

Вы близко, но я не думаю, что он хочет переместиться с рабочего стола на папку, в которой работает программа, он хочет для поиска zip в той же папке программа запускалась без жесткого кодирования в пути к рабочему столу. Ваша переменная 'destinationFile' - это все, что он действительно ищет. Возьмите секунду и посмотрите, что делает программа, она распаковывает zip-файл в установочный каталог Minecraft, он просто ищет способ переместить программу на другой компьютер и по-прежнему разархивировать. –

+0

Хорошая точка, @DaveZiegler, я обновил ее. – Gray

Смежные вопросы