Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Något att bita i flytta och radera

Postades av 2004-02-03 07:23:33 - Peter Granvall, i forum visual basic - allmänt, Tråden har 14 Kommentarer och lästs av 812 personer

Hejsan.. Sitter och funderar på ett projekt

säg att jag har en mapp som jag jobbar i och där skapas mycket tempfiler..
jag vill flytta alla filer med endelsen *.jpg och *.bmp till en annan mapp men allt annat vill jag radera i arbetsmappen och undermappar..

är detta möjligt och skulle någon ha någon ide hur jag löser detta problem..

gärna något enkelt ex 2st knappar..


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 08:15:43 - Kenneth Hedman

Lägg nedanstående kod i en modul

<code>
Option Explicit

'***FileFinding API***'
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Const MAX_PATH = 260
Const MAXDWORD = &HFFFF
Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_DIRECTORY = &H10

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private cnt As Long

Private Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function

Public Sub MoveFiles(WorkingPath As String, MovingPath As String)
Dim FileName As String, Cont As Integer, hSearch As Long
Dim WFD As WIN32_FIND_DATA

If Right(WorkingPath, 1) <> "\" Then WorkingPath = WorkingPath & "\"
If Right(MovingPath, 1) <> "\" Then MovingPath = MovingPath & "\"

hSearch = FindFirstFile(WorkingPath & "*", WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
FileName = StripNulls(WFD.cFileName)
If InStrRev(LCase(FileName), ".jpg", -1) Or InStrRev(LCase(FileName), ".bmp", -1) Then
Name WorkingPath & FileName As MovingPath & FileName
Else
If (FileName <> ".") And (FileName <> "..") Then
If Not GetFileAttributes(WorkingPath & FileName) And FILE_ATTRIBUTE_DIRECTORY Then
Kill WorkingPath & FileName
End If
End If

End If
Cont = FindNextFile(hSearch, WFD)
DoEvents
Loop
Cont = FindClose(hSearch)
End If

End Sub

</code>

Hoppas detta var vad du efterfrågade
Knoton


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 08:29:43 - Peter Granvall

det var intressant kod...
men enklaste måste ändå att köra detta som ett doskomando
ex nedan

test.bat
<code>
d:
cd test
move *.txt "c:\unzipped"
del *.*
cd test2
del *.*
</code>

men hur skriver man doscomandon ifrån vb


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 14:17:15 - Raderat konto

Ska du köra dos-kommandon från vb så använder du shell. Tycker jag iaf.


Så här:

Skapa din fil, som vilken annan textfil som helst, med vb, skriv dina kommandorader i filen som strängar, döp den till "nått.cmd"

sen:

<code>

dim x '(vet inte om jag ska dimma som nått här, vet nog nånannan)

x=shell("sökväg till cmd-fil som sträng")

</code>

Hoppas du fattar?:)


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 15:09:13 - Peter Granvall

var inne mer på att kunna lägga comandona i knappar
men ändå ha det änkelt.. men det lutar så ditt allternativ var det bästa
har för närvarande en bat fil men ville föra över den funktonen i vb
med ditt exemplar funkar även bra..


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 15:22:13 - Raderat konto

Jag använder mig av detta, tycker det fungerar bra.
Du kan använda en tempfil.cmd som tas bort när du är klar, du kan oxå dölja själva dos-rutan om du sätter ett kommatecken efter strängen (filnamnet)

/B


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 16:00:35 - Peter Granvall

gör så.. tackar för hjälpen


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-03 17:18:29 - Anders Moldin

Men det finns väl mycket, mycket smidigare lösningar än att använda kommandopromptem för det här?


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-04 07:42:54 - Peter Granvall

har du något exemplar så är jag mycket tacksam


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-04 18:35:22 - Niklas Jansson


Det här borde ju vara hur lätt som helst!
Du behöver:
1. en mapp du kollar i
2. en mapp du ska skicka filerna till
3. ett kriterium för vilka filer som ska skickas

Sen är det inte helt klart hur det ska funka. Låt säga att din mapp 1 är C:\Temp\.
Om du har en undermapp X i den (C:\Temp\X\), och det finns bmp-filer där, ska du då kopiera dem också?
I så fall - ska de direkt till mapp 2 eller till en motsvarande undermapp där?

Oavsett blir ju pseudokoden något i stil med:
<code>
Gå igenom alla filer i mappen (+ev. undermappar)
Om filen uppfyller ditt kriterium: kopiera filen
Annars: ta bort filen
Next
</code>
Några problem?


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-05 07:35:50 - Peter Granvall

jo det är något sådant..
men det är alltid lätt när man kan det...

jag stälde frågan här för jag inte viste hur man skriver för att få..

<code>
Gå igenom alla filer i mappen '(+ev. undermappar) behövs inte endast filer med *.jpg och bmp i rotmappen
Om filen uppfyller ditt kriterium: kopiera filen ' flytta. 50meg filer blir segt att kopiera
Annars: ta bort filer i eventuella mapp och undermapp ' alla filer utom *.jpg och *.bmp

</code>


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-06 12:51:32 - Fredrik Molnar

Varför göra det så svårt??

<code>
Dim sPath 'Sökväg till källfilerna
Dim dPath 'Sökväg till målmappen
Dim sFIle

sPath = "c:\source\"
dPath = "c:\destination\"

sFIle = Dir(sPath, vbDirectory)
Do While sFIle <> ""
If sFIle <> "." And sFIle <> ".." Then
If Right(UCase(sFIle), 4) = ".BMP" Or Right(UCase(sFIle), 4) = ".JPG" Then
Name sPath & sFIle As dPath & sFIle
Else
Kill sPath & sFIle
End If
End If
sFIle = Dir
Loop
</code>


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-06 13:09:49 - Sven Åke Persson

Hej Budda exakt min lösning, men orkar inte mer,har skrivit detta 10 tal ggr..

Dom skall krångla till det så ända in i helv.......

Ha det i Svedala


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-09 13:25:07 - Peter Granvall

tack Budda
det var precis så jag ville ha...

men det inehåller bara ett litet fel
om det är en undermapp i mappen han kopierar från så blir det fel
i följande rad

<code>
Kill sPath & sFIle
</code>


Svara

Sv: Något att bita i flytta och radera

Postades av 2004-02-10 07:48:38 - Peter Granvall

löste det..

ladde följande code i en modul

<code>
Dim sPath 'Sökväg till källfilerna
Dim dPath 'Sökväg till målmappen

Dim sFIle
Public Sub mapp1()

sPath = "c:\unzipped\1\"

dPath = "c:\unzipped\2\"

sFIle = Dir(sPath, vbDirectory)
Do While sFIle <> ""
If sFIle <> "." And sFIle <> ".." And sFIle <> "3" Then
If Right(UCase(sFIle), 4) = ".TXT" Or Right(UCase(sFIle), 4) = ".JPG" Then
Name sPath & sFIle As dPath & sFIle
Else

Kill sPath & sFIle
End If
End If
sFIle = Dir
Loop
mapp2
End Sub
Public Sub mapp2()

sPath = "c:\unzipped\1\3\"

dPath = "c:\unzipped\2\"

sFIle = Dir(sPath, vbDirectory)
Do While sFIle <> ""
If sFIle <> "." And sFIle <> ".." Then
If Right(UCase(sFIle), 4) = ".TXT" Or Right(UCase(sFIle), 4) = ".JPG" Then
Name sPath & sFIle As dPath & sFIle
Else

Kill sPath & sFIle
End If
End If
sFIle = Dir
Loop
End Sub

</code>

Kanske inte rätt men det funkar så som jag vill ha det... :-)
Tackar alla som hjälpt


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 584
27 958
271 741
6 025
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies