اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


rasool.g

نمونه کد های انتقال و تغییر نام پوشه و فایل بدون کتابخانه

1 ارسال در این موضوع قرار دارد

امشب چند عدد کد برای انتقال و تغییر نام پوشه و فایل پیدا کردم.

از اونجایی که کلاس file خود b4a این متد ها رو نداره و بیشتر روش کپی و پاک کردن و یا shell گفته شده بود. گفتم این نمونه کد ها و مثال ها رو هم به اشتراک بزارم.

البته کتابخونه های خوبی هم در انجمن وجود داره که میتونید از اون ها هم برای این کار استفاده کنید.

کد های زیر رو هم من خودم روی دستگاه های مختلف تست کردم و مشکلی نداشت ولی بازم بهتره از try catch در برنامه استفاده کنید.

کد ها و متد های انتقال و تغییر نام برای پوشه و فایل ها هم یکیه

(در کد ها از کتابخانه های javaObject ,reflection و Phone که به صورت پیشفرض در b4a موجوده استفاده شده)

 

انتقال یا تغییر نام فایل با shell

RenameFile(File.DirRootExternal & "/movr/a/" & fname,File.DirRootExternal & "/movr/b/" & fname)

Sub RenameFile(OriginalFileName As String, NewFileName As String) As Boolean
	Dim Result As Int
	Dim StdOut, StdErr As StringBuilder
	StdOut.Initialize
	StdErr.Initialize
	Dim Ph As Phone
	Result = Ph.Shell("mv " & OriginalFileName & " " & NewFileName, Null, StdOut, StdErr)
	If Result = 0 Then
		Return True
	Else
		Return False
	End If
End Sub

انتقال و تغییر نام پوشه با shell

RenameFolder(File.DirRootExternal & "/movr","a","newa")

Sub RenameFolder(Parent As String, CurrentFolder As String, NewFolder As String)
	Dim p As Phone
	Dim args(2) As String
	args(0) = File.Combine(Parent, CurrentFolder)
	args(1) = File.Combine(Parent, NewFolder)
	p.Shell("mv", args, Null, Null)
End Sub

انتقال و تغییر نام فایل با renameTo

RenameFile2(File.DirRootExternal & "/movr/a",fname,File.DirRootExternal & "/movr/b",fname)

Sub RenameFile2(SrcDir As String, SrcFilename As String, DestDir As String, DestFilename As String) As Boolean
	Dim R As Reflector, NewObj As Object, New As String , Old As String
	New=File.Combine(DestDir,DestFilename)
	Old=File.Combine(SrcDir,SrcFilename)
	NewObj=R.CreateObject2("java.io.File",Array As Object(New),Array As String("java.lang.String"))
	R.Target=R.CreateObject2("java.io.File",Array As Object(Old),Array As String("java.lang.String"))
	Return R.RunMethod4("renameTo",Array As Object(NewObj),Array As String("java.io.File"))
End Sub

انتقال و تغییر نام فایل با renameTo روش 2

FileMove(File.DirRootExternal & "/movr/a",fname,File.DirRootExternal & "/movr/b",fname)

Sub FileMove(SourceFolder As String, SourceFile As String, TargetFolder As String, TargetFile As String) As Boolean
	Dim source, target As JavaObject
	source.InitializeNewInstance("java.io.File", Array(SourceFolder, SourceFile))
	target.InitializeNewInstance("java.io.File", Array(TargetFolder, TargetFile))
	Return source.RunMethod("renameTo", Array(target))
End Sub

انتقال و تغییر نام پوشه با renameTo

	Try
		Dim source, target As JavaObject
		source.InitializeNewInstance("java.io.File", Array(File.DirRootExternal & "/movr/a"))
		target.InitializeNewInstance("java.io.File", Array(File.DirRootExternal & "/movr/newa"))
		Msgbox(source.RunMethod("renameTo", Array(target)),"result")
	Catch
		Log(LastException)
	End Try

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر