1

У меня есть текстовый файл, в котором есть новые строки Unix и должны быть новые строки Windows. Я пытаюсь сделать unix2dos filename.txt но я получаю Unix2Dos: Can't stat 'filename.txt' . На самом деле, там написано, что Can't stat 'xxx' за то, что xxx я кормлю.

Я пытался найти эту ошибку в Google, но не могу найти ничего, имеющего отношение к моей ситуации, и нет общего описания того, что может вызвать эту ошибку.

Если это имеет какое-то значение, я работаю на Windows 7 и работаю с какой-то версией Unix2Dos, которую я скачал.

1 ответ1

1

Ошибка происходит из этой части (посмотрите на исходный код Unix2Dos):

    if (stat (path=*++argv, &s_buf) != -1)   
    {   
        printf ("Unix2Dos: Cleaning file %s ...\n", path);   
        if (u2dos (path))   
        {   
            fprintf (stderr, "Unix2Dos: Problems cleaning file %s.\n", path);   
            exit (1);   
        }   
    }   
    else   
    {   
        fprintf (stderr, "Unix2Dos: Can't stat '%s'.\n", path);   
        exit (1);   
    }   

Это означает, что функция stat не может быть выполнена:

Эти функции возвращают информацию о файле в буфере, на который указывает stat. Для самого файла не требуются разрешения, но - в случае stat(), fstatat() и lstat() - разрешение execute (search) требуется для всех каталогов в пути, которые ведут к файлу.


[Отредактировано @ibson]

В этом конкретном случае файл находился в подкаталоге каталога Dropbox. Переместив файл в другое место, Unix2Dos смог отлично справиться со своей задачей. Судя по всему, Dropbox в Windows 7 что-то делает с правами доступа к каталогам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .