Domanda

Sto cercando di convertire un programma da Linux a uso su Windows, e chiama test -f, o test -d su Linux. Ho bisogno di fare la stessa cosa su Windows. Esiste un comando built-in, o un altro programma che può utilizzare per fare la stessa cosa?

Sto programmando con FreeBASIC (orribile, ma è quello che ho ottenuto).

EDIT: un programma esterno è la migliore opzione qui. Ho guardato l'API, e non è buona.

È stato utile?

Soluzione

Mai sentito parlare di FreeBasic prima, ma guardando l'aiuto c'è un comando DIR che supporta l'utilizzo fbDirectory come uno dei modelli di attributo per filtrare.
E guardando un po 'più in basso in quella pagina ho appena visto che essi hanno un campione per verificare se gli oggetti trovati sono file o directory. Basta guardare qui , sguardo al secondo esempio in quella pagina.

Non sei sicuro di cosa esattamente questi comandi di test fanno, ma se si desidera verificare se un oggetto specifico è una directory si dovrebbe essere in grado di chiamare Dir("exactname", fbDirectory, something) avevo pensato. E allora si potrebbe verificare un file mettendo un Non in qualche parte (ammesso che supporta FreeBASIC che).

Modifica: Per rendere il proprio strumento, qui 'un esempio che mostra una piccola C ++ app che potrebbe essere facilmente modificato per guardare per le directory o no. Cercare il FindFirstFile nel campione e poco dopo che controlla se si tratta di sola lettura, che potrebbero essere modificati per FILE_ATTRIBUTE_DIRECTORY.

Altri suggerimenti

http://unxutils.sourceforge.net/

è possibile utilizzare test.exe proprio come sotto linux

Non sei sicuro di FreeBASIC, hai guardato in VBScript? È possibile utilizzare il FileSystemObject

Dim fso, msg
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(fldr)) Then
   'Do Something here
Else
   'Do Something
End If
If (fso.FileExists(filespec)) Then
   'Do Something here
Else
   'Do Something
End If
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top