> On 30 Apr 2017, at 19:31, Stephane Ducasse <[email protected]> wrote:
> 
> Can you open a bug entry with clear examples?
> We should improve this part. 
> After having the interpretation of strings sucks. I do not like it I prefer
> 
> FileLocator C / 'temp' / 'e8720bb4-b90a-0d00-9b1f-008709e5552b.txt'

Indeed.

Also, you should never have to write the platform test, an important idea of 
FileSystem is to prevent that.

Have you read the chapter on FileSystem from the Deep Into Pharo book ?

Maybe some Windows users can help you better, but I don't recall others having 
trouble using FileSystem on Windows. 

> On Sun, Apr 30, 2017 at 6:54 PM, Casimiro de Almeida Barreto 
> <[email protected]> wrote:
> Hello,
> 
> -----Mensagem original-----
> De: Pharo-dev [mailto:[email protected]] Em nome de Sven Van 
> Caekenberghe
> Enviada em: domingo, 30 de abril de 2017 05:30
> Para: Pharo Development List <[email protected]>
> Assunto: Re: [Pharo-dev] Problem with FileSystem in WIndows
> 
> 
> > On 30 Apr 2017, at 09:48, Max Leske <[email protected]> wrote:
> >
> > Hi Casimiro,
> >
> > have you tried using normal slashes in the path name? FileSystem should 
> > convert those to system path delimiters automatically. So:
> 
> It seems that FileSystem does not convert / into \ .
> ((FileSystem root) / 'c:\temp\tempfile.txt')  writeStream won´t work but...
> FileStream fileNamed: 'C:\temp\tempfile.txt' works ok.
> 
> So... I could make it work for getting a stream both for Unix and Windows:
> 
>         OSPlatform currentPlatformName = 'unix'
>         ifTrue: [
>                 [ str := (fs / fn) writeStream ] on: Exception do: [ ^ nil ] ]
>         ifFalse: [
>                 [ str := FileStream fileNamed: fn ] on: Exception do: [ ^ nil 
> ] ].
> 
> And to delete:
> 
>         OSPlatform currentPlatformName = 'unix'
>         ifTrue: [
>                 (FileSystem root / aFileName) delete ]
>         ifFalse: [
>                 rgx := RxMatcher forString: '^[A-Z]\:'.
>                 drive := rgx matchesIn: aFileName.
>                 drive := (drive at: 1) copyWithRegex: '\:' 
> matchesReplacedWith: ''.
>                 ((FileLocator driveNamed: drive)  / (aFileName copyWithRegex: 
> '^[A-Z]\:' matchesReplacedWith: '')) delete ]
> 
> Not good, nor elegant nor anything close to good transparent code but... 
> works :'(
> 
> >
> > C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt
> >
> > And possibly you'll need a leading slash, as "C:" is a reference to the 
> > root of the file system:
> >
> > /C:/temp/e8720bb4-b90a-0d00-9b1f-008709e5552b.txt
> 
> There is also the following option:
> 
>         FileLocator C / 'temp' / 'e8720bb4-b90a-0d00-9b1f-008709e5552b.txt'
> 
> > Cheers,
> > Max
> >
> >> On 30 Apr 2017, at 03:15, Casimiro de Almeida Barreto 
> >> <[email protected]> wrote:
> >>
> >> Good night all.
> >>
> >> I´ve had trouble in windows concerning FileSystem.
> >>
> >> ((FileSystem disk root) / 
> >> ‘C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt’) delete
> >>
> >> Fails as if the file didn´t exist. Message:
> >>
> >> FileDoesNotExist: Path / ‘C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt’
> >>
> >> And I wonder what´s wrong. Because it works in linux and MacOS.
> >>
> >> Trasncript show: ((FileSYstem disk root) / 
> >> ‘C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt’)
> >>
> >> Returns:
> >>
> >> File @ C:\temp\e8720bb4-b90a-0d00-9b1f-008709e5552b.txt\
> >>
> >> And I wonder where the last \ came from and if is it that is messing all 
> >> and how to fix things.
> >>
> >> Best regards,
> >>
> >> Casimiro Barreto
> >>
> >>      Livre de vírus. www.avast.com.
> >
> 
> 
> 
> 
> ---
> Este email foi escaneado pelo Avast antivírus.
> https://www.avast.com/antivirus
> 
> 
> 


Reply via email to