O erro vem desta parte (olhando o código-fonte do 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);
}
Isso significa que a função stat pode ' t ser executado:
These functions return information about a file, in the buffer pointed to by stat. No permissions are required on the file itself, but—in the case of stat(), fstatat(), and lstat()—execute (search) permission is required on all of the directories in pathname that lead to the file.
[EDITADO por @ibson]
Nesse caso específico, o arquivo residia em um subdiretório de um diretório do Dropbox. Depois de mover o arquivo para outro lugar, o Unix2Dos conseguiu fazer bem o seu trabalho. Aparentemente, o Dropbox no Windows 7 faz algo com permissões de diretório.