Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > перевести с Java на C/C++


Автор: dorogoyIV 10.1.2011, 04:04
мне нужно вывести в консоль папки и файлы
не знаю как на С/С++ это сделать
вот код на Java:
Код

import java.io.*;

public class Test
{
 public static void main(String [] args)
 {
  showFiles(new File("C:\\"));
 }

 private static void showFiles(File file)
 {
  System.out.println(file);

  if(file.isDirectory())
  {
   File [] files = file.listFiles();

   for(int i = 0; i < files.length; i++)
    showFiles(files [i]);
  }
 }
}

Автор: darkart 10.1.2011, 10:38
Для винды...
Код

#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

void ShowFiles( wstring dir )
{
    wcout << dir.c_str() << endl;
    ::SetCurrentDirectory( dir.c_str() );

    WIN32_FIND_DATA tFind;

    HANDLE hFind = ::FindFirstFile( L"*.*", &tFind );

    if( hFind == INVALID_HANDLE_VALUE )
        return;

    do
    {
        if( tFind.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
        {
            if( wcscmp( tFind.cFileName, L"." ) != 0 && wcscmp( tFind.cFileName, L".." ) != 0 )
            {
                wstring nextDir = dir;
                nextDir += tFind.cFileName;
                nextDir += L"\\";
                ShowFiles( nextDir );
            }
        }
        else
        {
            wstring file = dir;
            file += tFind.cFileName;
            wcout << file.c_str() << endl;
        }
        if( !::FindNextFile( hFind, &tFind ) )
        {
            ::FindClose( hFind );
            hFind = INVALID_HANDLE_VALUE;
        }
    }
    while( hFind != INVALID_HANDLE_VALUE );

}

int main( int argc, char* argv[] )
{
    setlocale(LC_ALL, "Russian");
    ShowFiles( L"С:\\" );
    getch();
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)