Проблема с MoveFileA

Тема в разделе "WASM.BEGINNERS", создана пользователем DoubleOn, 20 дек 2010.

  1. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    Нужно переместить папку нашел в одной книге код
    получилась такая вот штука
    Код (Text):
    1. #include "stdafx.h"
    2. #include <windows.h>
    3. #include <iostream>
    4. using namespace std;
    5.  
    6.  
    7.  
    8.  
    9. int main()
    10. {
    11.  
    12. if(!MoveFileA("C:\\qwer_dir", "D:\\qwer_dir"))
    13. {
    14. cout <<"Move file failed."<< endl << "The last error code: "<< GetLastError() << endl;
    15. cout <<"Press any key to finish.";
    16. cin.get();
    17.  
    18. return 0;
    19. }
    20. cout << "The directory is moved." << endl;
    21. return 0;
    22.  
    23. }
    В итоге выдает ошибку 3 если не изменяет память Не удаеться найти указанный путь.
    С чем это может быть связанно вроде все на месте.Папки созданны.Как описанно в книге эта функция умеет таскать и папки.
     
  2. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    MoveFileA("C:\\qwer_dir", "D:\\");
     
  3. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    dyn
    вот на таком примере ошибка 5-Нет доступа



    Код (Text):
    1.  #include "stdafx.h"
    2. #include <windows.h>
    3. #include <iostream>
    4. using namespace std;
    5. int main()
    6. {
    7.  
    8. MoveFileA("C:\\qwer_dir", "D:\\"))
    9. cout<<GetLastError()<<endl;
    10.  
    11. return 0;
    12. }
    }
     
  4. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    CreateDirectoryA("D:\\qwer_dir",0); + рекурсивная функция , которая будет по одному файлу из одной папки в другую копировать
     
  5. ntkernelspawn

    ntkernelspawn New Member

    Публикаций:
    0
    Регистрация:
    17 дек 2010
    Сообщения:
    61
    DoubleOn
    Если это Семерка или Виста, то у вас не хватает прав(Run as administrator).
    Код (Text):
    1. system("move src, dest");
     
  6. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    SHFileOperation - и не надо создавать директорий или копировать по одному.
     
  7. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    ntkernelspawn
    пользователь с правами администратора разве не подойдет?

    Partner
    а если не копировать а перемешать?Основная идея была в этом.Хотя и на этом спасибо.Не видел эту функцию
     
  8. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    DoubleOn,

    Я добавил подчёркивание в важных местах.
     
  9. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Да без проблем - перемещать, копировать, переименовывать и даже удалять.

    http://msdn.microsoft.com/en-us/library/bb762164(v=vs.85).aspx
     
  10. DoubleOn

    DoubleOn New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    62
    baldr
    спасибо

    Partner
    еше большее спасибо
    пойду эксперементировать