Ler um arquivo em um diretório e abrir o arquivo

27 respostas
T

Bom pessoal tenho que fazer o seguinte

Preciso ler um determinado diretório e abrir o documento que encontrar dentro dele. O que fiz até agora foi percorer os diretórios mais não consigo abriri os arquivos. Será que alguém pode me ajudar.

Classe de Leitura

import java.io.File;  
   
 public class Leitor {  
      
    //encontro o arquivo e sua árvore através do diretório que devo passar  
    //abaixo  
    public static void main(String[] args){  
       carreagaDiretorios(Messages.getString("Leitor.0")); //$NON-NLS-1$  
    }  
      
    //imprimo o nome do diretório atual  
    private static void carreagaDiretorios(String nomeDiretorio){  
       System.out.println(nomeDiretorio);  
      
    //criar um objeto para o deretório atual  
    File dirAtual = new File(nomeDiretorio);  
    //criar um Array para os arquivos que estão dentro do diretório  
    File[] arquivosInternos = dirAtual.listFiles();  
      
    //Se encontrar algum arquivo dentro do diretótio ele percorre  
    //tudo o que foi encontrado com o loop(for).  
    if(arquivosInternos != null){  
       for(int i = 0; i< arquivosInternos.length; i++){  
            
          if(arquivosInternos[i].exists() && arquivosInternos[i].isDirectory())  
             carreagaDiretorios(arquivosInternos[i].getPath());  
       }  
    }  
   }  
}

O diretório raiz que eu desejo percorrer eu passo através de um messages.properties e tenho a classe Messages

Classe Messages

[code]
import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Messages {
private static final String BUNDLE_NAME = "cbd.gpa.leitorArquivo.messages"; //$NON-NLS-1$

private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
.getBundle(BUNDLE_NAME);

private Messages() {
}

public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
[code]

Se alguém puder me ajudar agradeço.

27 Respostas

D

Olá,

dá uma olhada neste link:

http://www.guj.com.br/article.show.logic?id=13

Espero ter ajudado.

[]'s.

D

Boa tarde.

Que tal tentar assim:

.....
     if(arquivosInternos != null){
         for(int i = 0; i&lt; arquivosInternos.length; i++){
            if(arquivosInternos[i].exists() && arquivosInternos[i].isDirectory()){
               carreagaDiretorios(arquivosInternos[i].getPath());
            } else if(arquivosInternos[i].exists() && arquivosInternos[i].isFile()){
                Desktop desktop = Desktop.getDesktop();
                try {
                     desktop.open(arquivosInternos[i]);
                } catch (IOException ex) {
                     System.out.println(ex.getMessage());
                }
            }
         }
      }
      ....

O Sistema irá abrir os arquivos associando-os aos seus respectivos sofwares, como ".txt", ".doc", "*.pdf", a menos é claro, se voce tentar abrir um arquivo binário, neste caso, vai causar exceção, por isto ser necessário o tratamento do erro.

S
O que fiz até agora foi percorer os diretórios mais não consigo abriri os arquivos.

eu rodei o seu código, mas não entendi o que você quis dizer de abrir os arquivos

aqui você lista todos os arquivos do diretório
File[] arquivosInternos = dirAtual.listFiles();
então você cria um for e recursivamente vai entrando nos diretórios
for (int i = 0; i < arquivosInternos.length; i++) {

				if (arquivosInternos[i].exists()
						&& arquivosInternos[i].isDirectory())
					carreagaDiretorios(arquivosInternos[i].getPath());
			}

esse código que você passou eu executei e está ok, como você está tentando abrir arquivo??
que tipo de arquivo seria??

T

Bom esqueci de mencionar algumas informações me desculpem, essa classe vai rodar dentro de ambiente linux e não tenho desktop nesse caso, preciso varrer um diretório e encontrar todos os arquivos .log desde diretório e listar a data de início e a data final (ou hora início hora final) esta informação vou jogar para um banco e ela pode ser retornada do tipo texto mesmo.

S

veja se ti ajuda

// imprimo o nome do diretório atual
	private static void carreagaDiretorios(String nomeDiretorio) {

		//System.out.println(nomeDiretorio);

		// criar um objeto para o deretório atual
		File dirAtual = new File(nomeDiretorio);
		// criar um Array para os arquivos que estão dentro do diretório
		File[] arquivosInternos = dirAtual.listFiles();

		// Se encontrar algum arquivo dentro do diretótio ele percorre
		// tudo o que foi encontrado com o loop(for).
		if (arquivosInternos != null) {
			for (int i = 0; i < arquivosInternos.length; i++) {

				if (arquivosInternos[i].exists()
						&& arquivosInternos[i].isDirectory()) {
					carreagaDiretorios(arquivosInternos[i].getPath());
				} else if (arquivosInternos[i].exists()
						&& arquivosInternos[i].isFile()) {
					verificaArquivoLog(arquivosInternos[i]);
				}
			}
		}
	}
	
	//verifico a extensão do arquivo
	private static void verificaArquivoLog(File f){
		String extensaoArray[] = f.getPath().split("\\.");
		if (extensaoArray.length>0) {
			if ("log".equals(extensaoArray[extensaoArray.length-1])) {
				System.out.println(f);
			}
		}
	}
T

é exatamente isso silvasouza…agora só me falta conseguir pegar a hora inicio e a hora final de execução destes arquivos.

Valeu muito obrigado.!!!

T

bom galera preciso de mais uma ajudinha

Estou conseguindo listar os arquivos, mais agora tenho que abrir os asquivos pegar a data de execução a hora inicio e a hora fim desses arquivos e mostrar na tela e não estou conseguindo fazer isso…

Sera que podem me ajudar…

U

trydugmn:
bom galera preciso de mais uma ajudinha

Estou conseguindo listar os arquivos, mais agora tenho que abrir os asquivos pegar a data de execução a hora inicio e a hora fim desses arquivos e mostrar na tela e não estou conseguindo fazer isso…

Sera que podem me ajudar…


seria data de modificação!?

ou quando abrir o arquivo gravar a data que foi aberto etc…!?

vlw

T

é a data que o arquivo foi executado.

Este arquivo é .log ele é executado em um banco de dados e ficar armazenado em um determinado diretório tenho que varrer esse diretório encontrar esses arquivos .log abrir eles e pegar a data de execução a hora que iniciou a execução e a hora que terminou a execução, não preciso calcular o tempo de duração. Essas informações tenho que apresentar na tela em formato texto mesmo e depois joga-las para outro banco.
Até agora consigo varrer os arquivos mais não estou conseguindo abrir e pegar as informações que preciso.

Se puder ajudar…!! fico muito agradecido…!!!

U

trydugmn:
é a data que o arquivo foi executado.

Este arquivo é .log ele é executado em um banco de dados e ficar armazenado em um determinado diretório tenho que varrer esse diretório encontrar esses arquivos .log abrir eles e pegar a data de execução a hora que iniciou a execução e a hora que terminou a execução, não preciso calcular o tempo de duração. Essas informações tenho que apresentar na tela em formato texto mesmo e depois joga-las para outro banco.
Até agora consigo varrer os arquivos mais não estou conseguindo abrir e pegar as informações que preciso.

Se puder ajudar…!! fico muito agradecido…!!!


Bom para isso eu faria o seguinte estrutura de LOG:
Programa -> Foi aberto em data 01-01-0001
.
.ficaria o que foi feito de mais importante.
.
Programa -> Foi fechado em data 02-01-0001

Bom, o seu problema é em abrir esse arquivo e lê o que é preciso! isso mesmo?!?!
Tem que ver como você salvar esse dados no LOG tipo a estrutura usada!
Vendo isso é só pegar a estrutura usada e fazer o inverso!

Posso tentar ajudar sim mais você terá que apresentar a estrutura usada para salvar!

vlw
vlw

T

bom essa é a estrutura do .log

INICIO DO SCRIPT: /retail/prd/shells/Wrappers/Gpa_ExecLoMaByMas.4105.MFPGPA.20100427.17.26.19.0001.ksh.
DATA EXECUÇÃO: 20100427… DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.20

DATA EXECUTADA: RPAS_TODAY=20100427 H: 17.26.20

Executando:
loadmeasure -d /mfp_prd_0001/oradata/domains/MFPGPA -measure swpteraeopu,swpteraeopc -loglevel all.
RPAS_TODAY=20100427 H: 17.26.20

  • loadmeasure -d /mfp_prd_0001/oradata/domains/MFPGPA -measure swpteraeopu,swpteraeopc -loglevel all
    <D 2010Apr27 17:26:20.167>
    <D 2010Apr27 17:26:20.167> UtilityBase
    <D 2010Apr27 17:26:20.167> Program loadmeasure arguments:
    <D 2010Apr27 17:26:20.167> arg[1]=’-d’
    <D 2010Apr27 17:26:20.167> arg[2]=’/mfp_prd_0001/oradata/domains/MFPGPA’
    <D 2010Apr27 17:26:20.167> arg[3]=’-measure’
    <D 2010Apr27 17:26:20.167> arg[4]=‘swpteraeopu,swpteraeopc’
    <D 2010Apr27 17:26:20.167> arg[5]=’-loglevel’
    <D 2010Apr27 17:26:20.167> arg[6]=‘all’
    <D 2010Apr27 17:26:20.167>
    <D 2010Apr27 17:26:20.167>
    <I 2010Apr27 17:26:20.168> File lock polling interval set to: 500
    <D 2010Apr27 17:26:20.168> Dimension cache now using 320 bytes of memory.
    <D 2010Apr27 17:26:20.169> Dimension cache now using 1024 bytes of memory.
    <D 2010Apr27 17:26:20.169> Dimension cache now using 1088 bytes of memory.
    <D 2010Apr27 17:26:20.169> Dimension cache now using 1184 bytes of memory.
    <D 2010Apr27 17:26:20.169> Dimension cache now using 44864 bytes of memory.
    <D 2010Apr27 17:26:20.170> Dimension cache now using 45984 bytes of memory.
    <D 2010Apr27 17:26:20.170> Dimension cache now using 46112 bytes of memory.
    <D 2010Apr27 17:26:20.170> Dimension cache now using 46176 bytes of memory.
    <D 2010Apr27 17:26:20.170> Dimension cache now using 46368 bytes of memory.
    <D 2010Apr27 17:26:20.171> Dimension cache now using 0 bytes of memory.
    <D 2010Apr27 17:26:20.171> Dimension cache now using 96 bytes of memory.
    <D 2010Apr27 17:26:20.171> Dimension cache now using 43776 bytes of memory.
    <D 2010Apr27 17:26:20.172> Dimension cache now using 43872 bytes of memory.
    <D 2010Apr27 17:26:20.172> Dimension cache now using 45088 bytes of memory.
    <D 2010Apr27 17:26:20.172> Dimension cache now using 45664 bytes of memory.
    <D 2010Apr27 17:26:20.172> Dimension cache now using 46112 bytes of memory.
    <D 2010Apr27 17:26:20.172> Dimension cache now using 46176 bytes of memory.
    <D 2010Apr27 17:26:20.174> Dimension cache now using 47296 bytes of memory.
    <D 2010Apr27 17:26:20.177> Dimension cache now using 47648 bytes of memory.
    <D 2010Apr27 17:26:20.178> Dimension cache now using 47712 bytes of memory.
    <D 2010Apr27 17:26:20.178> Dimension cache now using 47840 bytes of memory.
    <D 2010Apr27 17:26:20.190> Dimension cache now using 0 bytes of memory.
    <D 2010Apr27 17:26:20.190> Dimension cache now using 96 bytes of memory.
    <D 2010Apr27 17:26:20.190> Dimension cache now using 43776 bytes of memory.
    <D 2010Apr27 17:26:20.190> Dimension cache now using 0 bytes of memory.
    <D 2010Apr27 17:26:20.193>
    <D 2010Apr27 17:26:20.193> Starting master log for loadmeasures
    <D 2010Apr27 17:26:20.193>
    <D 2010Apr27 17:26:20.193>
    <D 2010Apr27 17:26:20.193>
    <D 2010Apr27 17:26:20.193> Doing preprocessing
    <D 2010Apr27 17:26:20.193>
    <I 2010Apr27 17:26:20.193> No prescrub process.
    <N 2010Apr27 17:26:20.194>
    <N 2010Apr27 17:26:20.194> Now executing loadmeasure in domain ‘/mfp_prd_0001/oradata/domains/MFPGPA’.
    <D 2010Apr27 17:26:20.194> Dimension cache now using 96 bytes of memory.
    <D 2010Apr27 17:26:20.194> Dimension cache now using 43776 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 44352 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 45568 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 45824 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 54208 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 54624 bytes of memory.
    <D 2010Apr27 17:26:20.195> Dimension cache now using 95040 bytes of memory.
    <D 2010Apr27 17:26:20.196> Dimension cache now using 95104 bytes of memory.
    <D 2010Apr27 17:26:20.196> Dimension cache now using 95168 bytes of memory.
    <D 2010Apr27 17:26:20.199> Loading measure ‘swpteraeopu’
    <D 2010Apr27 17:26:20.199> getMeasInputFiles();
    <D 2010Apr27 17:26:20.199> Measure: swpteraeopu
    <D 2010Apr27 17:26:20.199> InputPath: /mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop
    <D 2010Apr27 17:26:20.199>
    <I 2010Apr27 17:26:20.200> MeasureLoader::loadDataFromFile();
    <I 2010Apr27 17:26:20.200> Loading ‘.rpl’ file ‘/mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop.rpl’.
    <D 2010Apr27 17:26:20.201> Dimension cache now using 95232 bytes of memory.
    <D 2010Apr27 17:26:20.201> Dimension cache now using 96096 bytes of memory.
    <D 2010Apr27 17:26:20.201> Dimension cache now using 96160 bytes of memory.
    <D 2010Apr27 17:26:20.201> Dimension cache now using 96256 bytes of memory.
    <I 2010Apr27 17:26:20.201> ArrayLoader::run() Loading file: /mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop.rpl
    <I 2010Apr27 17:26:20.201> Profiling is not enabled

=========================================================

TSI:0 0.000101 seconds for PNIMap::readPNIMap

=========================================================

=========================================================

TSI:0 0.000102 seconds for PNIMap::readPNIMap

=========================================================

=========================================================

TSI:0 0.000103 seconds for PNIMap::readPNIMap

=========================================================
 
 Position name [CLSS1002_2854] for dimension [CLSS] not found at lines:  799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912
 Position name [CLSS1905_2776] for dimension [CLSS] not found at lines:  18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688
 Position name [CLSS2404_1575] for dimension [CLSS] not found at lines:  31457, 31458, 31459, 31460, 31461, 31462, 31463, 31464, 31465, 31466, 31467, 31468, 31469, 31470, 31471, 31472, 31473, 31474, 31475, 31476, 31477, 31478, 31479, 31480, 31481, 31482, 31483, 31484, 31485, 31486, 31487, 31488, 31489, 31490, 31491, 31492, 31493, 31494, 31495, 31496, 31497, 31498, 31499, 31500, 31501, 31502, 31503, 31504, 31505, 31506, 31507, 31508, 31509, 31510, 31511, 31512, 31513, 31514, 31515, 31516, 31517, 31518, 31519, 31520, 31521, 31522, 31523, 31524, 31525, 31526, 31527, 31528, 31529, 31530, 31531, 31532, 31533, 31534, 31535, 31536, 31537, 31538, 31539, 31540, 31541, 31542, 31543, 31544, 31545, 31546, 31547, 31548, 31549, 31550, 31551, 31552, 31553, 31554, 31555, 31556, 31557, 31558, 31559, 31560, 31561, 31562, 31563, 31564, 31565, 31566, 31567, 31568, 31569, 31570
 Position name [CLSS303_878] for dimension [CLSS] not found at lines:  31571, 31572, 31573, 31574, 31575, 31576, 31577, 31578, 31579, 31580, 31581, 31582, 31583, 31584, 31585, 31586, 31587, 31588, 31589, 31590, 31591, 31592, 31593, 31594, 31595, 31596, 31597, 31598, 31599, 31600, 31601, 31602, 31603, 31604, 31605, 31606, 31607, 31608, 31609, 31610, 31611, 31612, 31613, 31614, 31615, 31616, 31617, 31618, 31619, 31620, 31621, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31629, 31630, 31631, 31632, 31633, 31634, 31635, 31636, 31637, 31638, 31639, 31640, 31641, 31642, 31643, 31644, 31645, 31646, 31647, 31648, 31649, 31650, 31651, 31652, 31653, 31654, 31655, 31656, 31657, 31658, 31659, 31660, 31661, 31662, 31663, 31664, 31665, 31666, 31667, 31668, 31669, 31670, 31671, 31672, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31681, 31682, 31683, 31684
 Position name [CLSS306_738] for dimension [CLSS] not found at lines:  31685, 31686, 31687, 31688, 31689, 31690, 31691, 31692, 31693, 31694, 31695, 31696, 31697, 31698, 31699, 31700, 31701, 31702, 31703, 31704, 31705, 31706, 31707, 31708, 31709, 31710, 31711, 31712, 31713, 31714, 31715, 31716, 31717, 31718, 31719, 31720, 31721, 31722, 31723, 31724, 31725, 31726, 31727, 31728, 31729, 31730, 31731, 31732, 31733, 31734, 31735, 31736, 31737, 31738, 31739, 31740, 31741, 31742, 31743, 31744, 31745, 31746, 31747, 31748, 31749, 31750, 31751, 31752, 31753, 31754, 31755, 31756, 31757, 31758, 31759, 31760, 31761, 31762, 31763, 31764, 31765, 31766, 31767, 31768, 31769, 31770, 31771, 31772, 31773, 31774, 31775, 31776, 31777, 31778, 31779, 31780, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788, 31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798
 Position name [CLSS308_899] for dimension [CLSS] not found at lines:  31799, 31800, 31801, 31802, 31803, 31804, 31805, 31806, 31807, 31808, 31809, 31810, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818, 31819, 31820, 31821, 31822, 31823, 31824, 31825, 31826, 31827, 31828
 Position name [CLSS6102_3004] for dimension [CLSS] not found at lines:  49936, 49937, 49938, 49939, 49940, 49941, 49942, 49943, 49944, 49945, 49946, 49947, 49948, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49956, 49957, 49958, 49959, 49960, 49961, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, 49971, 49972, 49973, 49974, 49975, 49976, 49977, 49978, 49979, 49980, 49981, 49982, 49983, 49984, 49985, 49986, 49987, 49988, 49989, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, 49998, 49999, 50000, 50001, 50002, 50003, 50004, 50005, 50006, 50007, 50008, 50009, 50010, 50011, 50012, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 50020, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 50045, 50046, 50047, 50048, 50049
 Position name [CLSS8104_591] for dimension [CLSS] not found at lines:  87278, 87279, 87280, 87281, 87282, 87283, 87284, 87285, 87286, 87287, 87288, 87289, 87290, 87291, 87292, 87293, 87294, 87295, 87296, 87297, 87298, 87299, 87300, 87301, 87302, 87303, 87304, 87305, 87306, 87307, 87308, 87309, 87310, 87311, 87312, 87313, 87314, 87315, 87316, 87317, 87318, 87319, 87320, 87321, 87322, 87323, 87324, 87325, 87326, 87327, 87328, 87329, 87330, 87331, 87332, 87333, 87334, 87335, 87336, 87337, 87338, 87339, 87340, 87341, 87342, 87343, 87344, 87345, 87346, 87347, 87348, 87349, 87350, 87351, 87352, 87353, 87354, 87355, 87356, 87357, 87358, 87359, 87360, 87361, 87362, 87363, 87364, 87365, 87366, 87367, 87368, 87369, 87370, 87371, 87372, 87373, 87374, 87375, 87376, 87377, 87378, 87379, 87380, 87381, 87382, 87383, 87384, 87385, 87386, 87387, 87388, 87389, 87390, 87391
 Position name [CLSS9901_2218] for dimension [CLSS] not found at lines:  139442, 139443, 139444, 139445, 139446, 139447, 139448, 139449, 139450, 139451, 139452, 139453, 139454, 139455, 139456, 139457, 139458, 139459, 139460, 139461, 139462, 139463, 139464, 139465, 139466, 139467, 139468, 139469, 139470, 139471, 139472, 139473, 139474, 139475, 139476, 139477, 139478, 139479, 139480, 139481, 139482, 139483, 139484, 139485, 139486, 139487, 139488, 139489, 139490, 139491, 139492, 139493, 139494, 139495, 139496, 139497, 139498, 139499, 139500, 139501, 139502, 139503, 139504, 139505, 139506, 139507, 139508, 139509, 139510, 139511, 139512, 139513, 139514, 139515, 139516, 139517, 139518, 139519, 139520, 139521, 139522, 139523, 139524, 139525, 139526, 139527, 139528, 139529, 139530, 139531, 139532, 139533, 139534, 139535, 139536, 139537, 139538, 139539, 139540, 139541, 139542, 139543, 139544, 139545, 139546, 139547, 139548, 139549, 139550, 139551, 139552, 139553, 139554, 139555
 loaded 1 files
   for measure: 'swpteraeopu'
   using path:  '/mfp_prd_0001/oradata/domains/MFPGPA/input'
<i> loadmeasure starting to apply loads...
<i> No unapplied loads to apply!
<i> No purge-age for swpteraeopu. Measure not purged.
 Loading measure 'swpteraeopc' 
 getMeasInputFiles();
   Measure:   swpteraeopc
   InputPath: /mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop
 
<i> MeasureLoader::loadDataFromFile();
<i>   Loading '.rpl' file '/mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop.rpl'.
<i> ArrayLoader::run() Loading file: /mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop.rpl
</i></i></i></i></i></i>

=========================================================

TSI:0 0.000097 seconds for PNIMap::readPNIMap

=========================================================

=========================================================

TSI:0 0.000106 seconds for PNIMap::readPNIMap

=========================================================

=========================================================

TSI:0 0.000101 seconds for PNIMap::readPNIMap

========================================================= Position name [CLSS1002_2854] for dimension [CLSS] not found at lines: 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912 Position name [CLSS1905_2776] for dimension [CLSS] not found at lines: 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688 Position name [CLSS2404_1575] for dimension [CLSS] not found at lines: 31457, 31458, 31459, 31460, 31461, 31462, 31463, 31464, 31465, 31466, 31467, 31468, 31469, 31470, 31471, 31472, 31473, 31474, 31475, 31476, 31477, 31478, 31479, 31480, 31481, 31482, 31483, 31484, 31485, 31486, 31487, 31488, 31489, 31490, 31491, 31492, 31493, 31494, 31495, 31496, 31497, 31498, 31499, 31500, 31501, 31502, 31503, 31504, 31505, 31506, 31507, 31508, 31509, 31510, 31511, 31512, 31513, 31514, 31515, 31516, 31517, 31518, 31519, 31520, 31521, 31522, 31523, 31524, 31525, 31526, 31527, 31528, 31529, 31530, 31531, 31532, 31533, 31534, 31535, 31536, 31537, 31538, 31539, 31540, 31541, 31542, 31543, 31544, 31545, 31546, 31547, 31548, 31549, 31550, 31551, 31552, 31553, 31554, 31555, 31556, 31557, 31558, 31559, 31560, 31561, 31562, 31563, 31564, 31565, 31566, 31567, 31568, 31569, 31570 Position name [CLSS303_878] for dimension [CLSS] not found at lines: 31571, 31572, 31573, 31574, 31575, 31576, 31577, 31578, 31579, 31580, 31581, 31582, 31583, 31584, 31585, 31586, 31587, 31588, 31589, 31590, 31591, 31592, 31593, 31594, 31595, 31596, 31597, 31598, 31599, 31600, 31601, 31602, 31603, 31604, 31605, 31606, 31607, 31608, 31609, 31610, 31611, 31612, 31613, 31614, 31615, 31616, 31617, 31618, 31619, 31620, 31621, 31622, 31623, 31624, 31625, 31626, 31627, 31628, 31629, 31630, 31631, 31632, 31633, 31634, 31635, 31636, 31637, 31638, 31639, 31640, 31641, 31642, 31643, 31644, 31645, 31646, 31647, 31648, 31649, 31650, 31651, 31652, 31653, 31654, 31655, 31656, 31657, 31658, 31659, 31660, 31661, 31662, 31663, 31664, 31665, 31666, 31667, 31668, 31669, 31670, 31671, 31672, 31673, 31674, 31675, 31676, 31677, 31678, 31679, 31680, 31681, 31682, 31683, 31684 Position name [CLSS306_738] for dimension [CLSS] not found at lines: 31685, 31686, 31687, 31688, 31689, 31690, 31691, 31692, 31693, 31694, 31695, 31696, 31697, 31698, 31699, 31700, 31701, 31702, 31703, 31704, 31705, 31706, 31707, 31708, 31709, 31710, 31711, 31712, 31713, 31714, 31715, 31716, 31717, 31718, 31719, 31720, 31721, 31722, 31723, 31724, 31725, 31726, 31727, 31728, 31729, 31730, 31731, 31732, 31733, 31734, 31735, 31736, 31737, 31738, 31739, 31740, 31741, 31742, 31743, 31744, 31745, 31746, 31747, 31748, 31749, 31750, 31751, 31752, 31753, 31754, 31755, 31756, 31757, 31758, 31759, 31760, 31761, 31762, 31763, 31764, 31765, 31766, 31767, 31768, 31769, 31770, 31771, 31772, 31773, 31774, 31775, 31776, 31777, 31778, 31779, 31780, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788, 31789, 31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798 Position name [CLSS308_899] for dimension [CLSS] not found at lines: 31799, 31800, 31801, 31802, 31803, 31804, 31805, 31806, 31807, 31808, 31809, 31810, 31811, 31812, 31813, 31814, 31815, 31816, 31817, 31818, 31819, 31820, 31821, 31822, 31823, 31824, 31825, 31826, 31827, 31828 Position name [CLSS6102_3004] for dimension [CLSS] not found at lines: 49936, 49937, 49938, 49939, 49940, 49941, 49942, 49943, 49944, 49945, 49946, 49947, 49948, 49949, 49950, 49951, 49952, 49953, 49954, 49955, 49956, 49957, 49958, 49959, 49960, 49961, 49962, 49963, 49964, 49965, 49966, 49967, 49968, 49969, 49970, 49971, 49972, 49973, 49974, 49975, 49976, 49977, 49978, 49979, 49980, 49981, 49982, 49983, 49984, 49985, 49986, 49987, 49988, 49989, 49990, 49991, 49992, 49993, 49994, 49995, 49996, 49997, 49998, 49999, 50000, 50001, 50002, 50003, 50004, 50005, 50006, 50007, 50008, 50009, 50010, 50011, 50012, 50013, 50014, 50015, 50016, 50017, 50018, 50019, 50020, 50021, 50022, 50023, 50024, 50025, 50026, 50027, 50028, 50029, 50030, 50031, 50032, 50033, 50034, 50035, 50036, 50037, 50038, 50039, 50040, 50041, 50042, 50043, 50044, 50045, 50046, 50047, 50048, 50049 Position name [CLSS8104_591] for dimension [CLSS] not found at lines: 87278, 87279, 87280, 87281, 87282, 87283, 87284, 87285, 87286, 87287, 87288, 87289, 87290, 87291, 87292, 87293, 87294, 87295, 87296, 87297, 87298, 87299, 87300, 87301, 87302, 87303, 87304, 87305, 87306, 87307, 87308, 87309, 87310, 87311, 87312, 87313, 87314, 87315, 87316, 87317, 87318, 87319, 87320, 87321, 87322, 87323, 87324, 87325, 87326, 87327, 87328, 87329, 87330, 87331, 87332, 87333, 87334, 87335, 87336, 87337, 87338, 87339, 87340, 87341, 87342, 87343, 87344, 87345, 87346, 87347, 87348, 87349, 87350, 87351, 87352, 87353, 87354, 87355, 87356, 87357, 87358, 87359, 87360, 87361, 87362, 87363, 87364, 87365, 87366, 87367, 87368, 87369, 87370, 87371, 87372, 87373, 87374, 87375, 87376, 87377, 87378, 87379, 87380, 87381, 87382, 87383, 87384, 87385, 87386, 87387, 87388, 87389, 87390, 87391 Position name [CLSS9901_2218] for dimension [CLSS] not found at lines: 139442, 139443, 139444, 139445, 139446, 139447, 139448, 139449, 139450, 139451, 139452, 139453, 139454, 139455, 139456, 139457, 139458, 139459, 139460, 139461, 139462, 139463, 139464, 139465, 139466, 139467, 139468, 139469, 139470, 139471, 139472, 139473, 139474, 139475, 139476, 139477, 139478, 139479, 139480, 139481, 139482, 139483, 139484, 139485, 139486, 139487, 139488, 139489, 139490, 139491, 139492, 139493, 139494, 139495, 139496, 139497, 139498, 139499, 139500, 139501, 139502, 139503, 139504, 139505, 139506, 139507, 139508, 139509, 139510, 139511, 139512, 139513, 139514, 139515, 139516, 139517, 139518, 139519, 139520, 139521, 139522, 139523, 139524, 139525, 139526, 139527, 139528, 139529, 139530, 139531, 139532, 139533, 139534, 139535, 139536, 139537, 139538, 139539, 139540, 139541, 139542, 139543, 139544, 139545, 139546, 139547, 139548, 139549, 139550, 139551, 139552, 139553, 139554, 139555 loaded 1 files for measure: 'swpteraeopc' using path: '/mfp_prd_0001/oradata/domains/MFPGPA/input' loadmeasure starting to apply loads... No unapplied loads to apply! No purge-age for swpteraeopc. Measure not purged. getMeasInputFiles(); Measure: swpteraeopc InputPath: /mfp_prd_0001/oradata/domains/MFPGPA/input/tera_eop Moving input file 'tera_eop.rpl' to 'processed' directory. Dimension cache now using 0 bytes of memory. Doing post processing No postscrub process. loadmeasure completed successfully Remove databases Remove directories Dimension cache used 96256 bytes of memory

O Script:
/retail/prd/sysout/logs/2010/04/27/.4105.MFPGPA.20100427.17.26.19.0001.exe:
TERMINOU COM RC=0. H: 17.26.22

PROGRAMA: /retail/prd/shells/Wrappers/Gpa_ExecLoMaByMas.4105.MFPGPA.20100427.17.26.19.0001.ksh.
FINALIZADO COM SUCESSO CR=0. STATUS: RC=OK.
FIM DO SCRIPT: /retail/prd/shells/Wrappers/Gpa_ExecLoMaByMas.4105.MFPGPA.20100427.17.26.19.0001.ksh.
DATA EXECUÇÃO: 20100427… DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.22

U

Nossa que estrutura!rsrs

Qual a parte que você precisa!?

é essa ?

DATA EXECUÇÃO: 20100427...... DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.22

vlw

T

é todos os .log que eu tenho tem essa estrutura.

Isso a do inicio da estrutura seria a inicial e no momento que ele encontrar denovo no final da estrutura ele identifica que é a final.

vlw

U

Então você precisa pegar a 1ª e a ultima linha!

ok?

Vamos formulando aos poucos!

vlw

T

isso eu preciso apresentar na tela da seguite forma…

Nome do arquivo.log data da execução
Hora inicial da execução e hora final da execução

Inicio

DATA EXECUÇÃO: 20100427...... DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.20

Final

DATA EXECUÇÃO: 20100427...... DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.22

a partir dai armezenar isso em um outro banco.

Eu ja consigo encontrar os arquivos.log no diretorio minha classe esta assim.

Classe Leitor

import java.io.File;

public class Leitor {
	
	//encontro o arquivo e sua árvore através do diretório que devo passar
	//abaixo
	public static void main(String[] args){
		carreagaDiretorios(Messages.getString("Leitor.0")); //$NON-NLS-1$
	}
	
	//imprimo o nome do diretório atual
	private static void carreagaDiretorios(String nomeDiretorio){
		System.out.println(nomeDiretorio);
	
	//criar um objeto para o deretório atual
	File dirAtual = new File(nomeDiretorio);
	//criar um Array para os arquivos que estão dentro do diretório
	File[] arquivosInternos = dirAtual.listFiles();
	
	//Se encontrar algum arquivo dentro do diretótio ele percorre
	//tudo o que foi encontrado com o loop(for).
	if(arquivosInternos != null){
		for(int i = 0; i< arquivosInternos.length; i++){
			
			if(arquivosInternos[i].exists() && arquivosInternos[i].isDirectory()){
				carreagaDiretorios(arquivosInternos[i].getPath());
		}else if(arquivosInternos[i].exists() && arquivosInternos[i].isFile()){
			verificarArquivoLog(arquivosInternos[i]);
				}
		}
	}
	}
	private static void verificarArquivoLog(File f){
		String extensaoArray[] = f.getPath().split("\\.");
		if(extensaoArray.length > 0){
			if("log".equals(extensaoArray[extensaoArray.length-1])){
				System.out.println(f);
				
			}
		}
	}	
	}

a partir dai tenho que abrir e pegar as informações.

vlw…!!!

U

Vai um pouco de lógica agora!

tente formular um forma dele lê a 1ª e a ultima linha!
também vou fazer isso;

vlw

T

e Ai UMC bom dia…!!!

Vc conseguiu pensar em alguma coisa sobre a nossa discução de ontem??

Vlw

T

eu fiz o seguinte.

Classe Leitor

import java.io.File;
import java.util.Scanner;

public class Leitor {
	
	//encontro o arquivo e sua árvore através do diretório que devo passar
	//abaixo
	public static void main(String[] args){
		carreagaDiretorios(Messages.getString("Leitor.0")); //$NON-NLS-1$
	}
	
	//imprimo o nome do diretório atual
	private static void carreagaDiretorios(String nomeDiretorio){
		System.out.println(nomeDiretorio);
	
	//criar um objeto para o deretório atual
	File dirAtual = new File(nomeDiretorio);
	//criar um Array para os arquivos que estão dentro do diretório
	File[] arquivosInternos = dirAtual.listFiles();
	
	//Se encontrar algum arquivo dentro do diretótio ele percorre
	//tudo o que foi encontrado com o loop(for).
	if(arquivosInternos != null){
		for(int i = 0; i< arquivosInternos.length; i++){
			
			if(arquivosInternos[i].exists() && arquivosInternos[i].isDirectory()){
				carreagaDiretorios(arquivosInternos[i].getPath());
		}else if(arquivosInternos[i].exists() && arquivosInternos[i].isFile()){
			verificarArquivoLog(arquivosInternos[i]);
				}
		}
	}
	}
	private static void verificarArquivoLog(File f){
		String extensaoArray[] = f.getPath().split("\\.");
		if(extensaoArray.length > 0){
			if("log".equals(extensaoArray[extensaoArray.length-1])){
				System.out.println(f);
			}
			Scanner hi = new Scanner("DATA EXECUTADA: RPAS_TODAY=20100427 H: 17.26.20");
		    hi.useDelimiter("FINALIZADO COM SUCESSO");
		    while (hi.hasNext()) {
		        System.out.println(hi.next());
		    }
		    Scanner hf = new Scanner("TERMINOU COM RC=0. H: 17.26.22");
		    hf.useDelimiter("FINALIZADO COM SUCESSO");
		    while (hf.hasNext()) {
		        System.out.println(hf.next());
		}	
		}

	}
}

ele esta me apresentando o seguinte.

C:\temp\Log_mfp\Gpa_ValConfigFile.4401.MFPGPA.20100427.17.26.02.0001.log
DATA EXECUTADA: RPAS_TODAY=20100427 H: 17.26.20
TERMINOU COM RC=0. H: 17.26.22

você tem alguma idéia pra melhorar isso.???

vlw…

T

o problema é que dessa forma ele sempre me traz os mesmo horarios e não os horarios de cada arquivos.

ele sempre traz horarios iguais aos que eu passe no costrutor…!!!

U

Eta confusão!rsrsrsrs
“excuse the lack of attention was absent”

Bom uma pergunta esse arquivo de log vai sempre escrever quando o programa for aberto!
E o tamanho dele vai consumir espaços não??

Tipo o programa foi instalado em 1-01-2000
Hoje é 29-04-2010
imagine o tamanho dele agora!
rs

Então a cada 2 abertura no programa ele apaga o log e cria a atual!
Você já sabe?

vlw

T

Esse arquivo de log é executado no banco se ele for executado mais de uma vez ele sobrescreve o atual.

eu só preciso sabe o seguinte dentro da estrutura do log eu preciso pegar as seguinte informações(linhas).

Essa é a data de execução e o horario inicial da execução

DATA EXECUÇÃO: 20100427...... DATA DO MOVIMENTO RPAS_TODAY: 20100427. H: 17.26.14

e Aqui a hora do termino da execução

TERMINOU COM RC=0. H: 17.26.16

Pareçe simples mais não estou conseguindo pegar essas informações e apresentar na tela…!!!

U

Entendi mais só vou indagar dessa vez!rsrsrs

Onde você salvar o data da abertura e do termino do programa já tentou salva-la em outro lugar especifico também!

vlw

T

Vou salva-la dentro de um outro diretório em outro banco de dados, mais ainda não fiz pois quero primeiro conseguir pegar as informações da forma que preciso…!!!

U

Ok, só vou terminar um negócio aqui e vou tentar fazer algo parecido!

vlw

T

UMC, cara desculpa to de dando um trabalho imenso né…!!

Mais é que não estou conseguindo mesmo, sou iniciante e não sei como fazer , você conseguiu alguma coisa ei…!!!

Se conseguiu da essa força ai e trabalho de facu…!!!

Valeu…!!!

T

Programa concluido…Obrigado pelas ajudas.!!!

T

vlw

Criado 27 de abril de 2010
Ultima resposta 6 de mai. de 2010
Respostas 27
Participantes 5